Ejecución de AWX (Ansible Tower) en Ubuntu 22.04 mediante Docker

En esta guía veremos cómo ejecutar en un servidor minikube con docker ya preinstalado en una máquina Ubuntu 22.04 un servicio AWX mediante el instalador AWX-Operator de la propia RedHat

Instalación de Minikube

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

Arrancamos el servidor Minikube con el driver de Docker

minikube start --vm-driver=docker --cpus=4 --memory=6g --addons=ingress

Comprobación de Nodos de K8s

minikube kubectl -- get nodes

Mirar los Pods del servidor

minikube kubectl -- get pods -A

Creación del alias para kubectl

alias kubectl="minikube kubectl --"

Instalación de Kustomize, la herramienta de despliegue

curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"  | bash

Fichero de configuración del despliegue en Kubernetes: kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  # Find the latest tag here: https://github.com/ansible/awx-operator/releases
  - github.com/ansible/awx-operator/config/default?ref=1.1.0

# Set the image tags to match the git version from above
images:
  - name: quay.io/ansible/awx-operator
    newTag: 1.1.0

# Specify a custom namespace in which to install AWX
namespace: awx

En el caso de que haya cambiado la versión del operador cambiala en las líneas (donde aparece 1.1.0)

Instalación de AWX-Operator en Kubernetes

kubectl apply -k .

Comprobación de los Pods

kubectl get pods -n awx

Cambio de namespace por defecto para kubectl

kubectl config set-context --current --namespace=awx

Fichero del despliegue de awx: awx-demo.yaml

---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx-demo
spec:
  service_type: nodeport
  # default nodeport_port is 30080
  nodeport_port: 30080

Cambio del fichero de despliegue global: kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  # Find the latest tag here: https://github.com/ansible/awx-operator/releases
  - github.com/ansible/awx-operator/config/default?ref=1.1.0
  - awx-demo.yaml

# Set the image tags to match the git version from above
images:
  - name: quay.io/ansible/awx-operator
    newTag: 1.1.0

# Specify a custom namespace in which to install AWX
namespace: awx

Aplicación del depsliegue

kubectl apply -k .

Comprobación del Despliegue

watch minikube kubectl -- get pods -A

Si todo ha desplegado bien, veremos el servicio de AWX

kubectl get svc -n awx

Exportamos la URL del servicio para acceder a él

minikube service awx-demo-service --url -n awx

Accedemos a la URL que nos devuelva, puede tardar un unos cuantos minutos, sobre tod hay que esperar a que los contenedores aws-demo con hash arranquen

Solicitamos la password del usuario admin de awx al secret que la guarda

kubectl get secret awx-demo-admin-password -o jsonpath="{.data.password}" -n awx | base64 --decode

Ya deberíamos poder acceder con el usuario admin y la pass que nos han devuelto

Posibles fallos

En ocasiones me ha dado fallo a la hora de crear los contenedores con un fallo de ImagePullBackOff cuando hago un get pods durante el despliegue, esto puede pasar porque no es capaz de descargar las imágenes docker de los contenedores que debe arrancar. Si esto falla puede ser por muchas cosas, pero la principal es por no meter bien las versiones de operador o de los contenedores de AWX

Comments

Leave a Reply

*

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Suscríbete al Boletín

Si quieres estar al tanto de las novedades del blog, ya sabes :)
* = campo obligatorio

powered by MailChimp!

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies