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:
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
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://
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
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