Cómo instalar Ansible AWX en Kubernetes Minikube

Hola Geeks, espero que estén al tanto de Ansible AWX, si no es así, Ansible AWX es una herramienta GUI basada en web para administrar playbooks de ansible. Hay muchas otras características de AWX además de la ejecución de libros de jugadas de Ansible, como la integración de administración de fuentes, el registro de RBAC y más.

En otras palabras, podemos decir que Ansible AWX se considera un proyecto ascendente de Red HAT Ansible Tower. A partir de la versión 18.x de AWX en adelante, el foco de instalación se traslada de docker a Kubernetes. Entonces, en este artículo, cubriremos la instalación paso a paso de Ansible AWX en Kubernetes Minikube.

Supongo que Minikube ya está instalado en su sistema Linux. Si no, utilice la siguiente URL:

Nota: Asegúrese de iniciar su clúster de minikube con suficientes recursos (al menos 4 vCPU y 8 GB de RAM), en mi caso, comencé minikube con los siguientes recursos y opciones.

$ minikube start --addons=ingress --cpus=4 --cni=flannel --install-addons=true --kubernetes-version=stable --memory=8g

Verificar la instalación del clúster de Minikube

Ejecute los siguientes comandos para verificar la instalación de minikube y el estado del clúster,

$ minikube status
$ kubectl cluster-info
$ kubectl get nodes

La salida de los comandos anteriores debería verse como a continuación:

Minikube-Instalación-Cluster-Check

Perfecto, lo anterior confirma que minikube se ha instalado e iniciado correctamente. Pasemos a los pasos de instalación de AWX.

Paso 1) Instalar el operador AWX

Para instalar el operador AWX, ejecute el siguiente comando kubectl,

$ kubectl apply -f https://raw.githubusercontent.com/ansible/awx-operator/0.12.0/deploy/awx-operator.yaml

Producción

Install-AWX-Operator-kubectl-comando

Ejecute el siguiente comando para confirmar si el módulo del operador AWX está iniciado o no. Si no se inicia, espere un par de minutos, ya que lleva tiempo,

[email protected]:~$ kubectl get pods
NAME                           READY   STATUS    RESTARTS   AGE
awx-operator-79bc95f78-pb7tz   1/1     Running   0          5m23s
[email protected]:~$

Paso 2) Cree el archivo yaml de la instancia de AWX

Cree un archivo ansible-awx.yml con el siguiente contenido

$ vi ansible-awx.yml
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: ansible-awx
spec:
  service_type: nodeport
  ingress_type: none
  hostname: ansible-awx.example.com

guardar y salir del archivo.

Paso 3) Implemente la instancia de Ansible AWX

Ahora, implementemos la instancia AWX en nuestro clúster ejecutando el siguiente comando,

[email protected]:~$ kubectl apply -f ansible-awx.yml
awx.awx.ansible.com/ansible-awx created
[email protected]:~$

Arriba creará una implementación con el nombre ‘ansible-awx’ y esta implementación tendrá dos pods y servicios.

Después de un par de minutos, Ansible AWX se implementará y, en caso de que desee monitorear los registros de instalación, use el siguiente comando:

$ kubectl logs -f deployment/awx-operator

Ejecute el siguiente comando para verificar el estado de AWX Pods,

[email protected]:~$ kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator"
NAME                           READY   STATUS    RESTARTS   AGE
ansible-awx-5ddfccf664-vrdq2   4/4     Running   0          7m40s
ansible-awx-postgres-0         1/1     Running   0          8m24s
[email protected]:~$

Ejecute el siguiente comando para ver el estado del servicio,

[email protected]:~$ kubectl get svc -l "app.kubernetes.io/managed-by=awx-operator"
NAME                   TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
ansible-awx-postgres   ClusterIP   None           <none>        5432/TCP       8m31s
ansible-awx-service    NodePort    10.97.206.89   <none>        80:32483/TCP   7m55s
[email protected]:~$

Tome nota del puerto de nodo de ‘ansible-awx-service’, lo usaremos más adelante para el reenvío de puertos.

Paso 4) Acceda al Portal AWX a través de túneles

Para acceder al portal de AWX fuera del clúster de minikube, debemos configurar el túnel, ejecutar

[email protected]:~$ nohup minikube tunnel &
[3] 35709
[email protected]:~$
[email protected]:~$ kubectl get svc ansible-awx-service
NAME                  TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
ansible-awx-service   NodePort   10.97.206.89   <none>        80:32483/TCP   90m
[email protected]:~$

Configure el reenvío de puertos de tal manera que, si la solicitud proviene de la IP de minikube en el puerto de nodo ‘32483’, entonces debe redirigirse al puerto 80 de awx pod.

[email protected]:~$ kubectl port-forward svc/ansible-awx-service --address 0.0.0.0 32483:80 &> /dev/null &
[4] 46686
[email protected]:~$

Ahora intente acceder al portal AWX desde el navegador web utilizando la dirección IP de minikube y el puerto de nodo 32483

http://:

Access-Ansible-AWX-Portal-Minikube

Para obtener las credenciales, regrese a la terminal y ejecute debajo del comando.

[email protected]:~$ kubectl get secret ansible-awx-admin-password -o jsonpath="{.data.password}" | base64 --decode
PWrwGWBFCmpd1b47DJffCtK5SqYGzxXF
[email protected]:~$

Use el nombre de usuario como ‘admin’ y la contraseña como resultado del comando anterior, después de ingresar las credenciales obtendremos el siguiente panel

AWX-Dashboard-minikube

Genial, lo anterior confirma que Ansible AWX se instaló correctamente en Kubernetes minikube. Eso es todo de este artículo. Espero que lo haya encontrado informativo y, en caso de que tenga alguna consulta, no dude en escribirnos en la sección de comentarios a continuación.

Leer también : Cómo ejecutar y programar Ansible Playbook mediante la GUI de AWX

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *