Instalación de Ansible AWX sobre Centos 7 con Docker

Buenos días a tod@os. Hace ya bastante tiempo, escribí un post en dónde contaba cómo instalar AWX sobre Centos 7, utilizando paquetes RPM.

El proyecto Ansible AWX está en constante evolución y es por eso que continuamente es necesario actualizar nuestro entorno. No hay mas que echar un vistazo a todas las releases para darse cuenta de lo rápido que evoluciona.

Es por eso, que el post inicial se ha quedado un poco desfasado y en esta ocasión os mostraré cómo instalar Ansible AWX mediante Docker, que es una de las formas que recomiendan oficialmente. También veremos cómo hacer la actualización de versión y cómo migrar los datos de una instancia a otra.

Instalar repositorio EPEL

1
yum install -y epel-release

Instalar pre-requisitos de Ansible AWX:

1
yum install -y git gcc gcc-c++ nodejs gettext device-mapper-persistent-data lvm2 bzip2 python-pip yum-utils ansible

Instalar Docker CE (Comunity Edition):

1
2
3
yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl enable --now docker.service

Instalar Docker-Compose

1
pip install docker-compose

En caso de que recibamos algún tipo de error y no se instale correctamente, deberemos instalar una versión anterior, probar con el siguiente comando:

1
pip install docker-compose==1.23.2

Instalando Ansible AWX on CentOS 7:

Cambiamos el directorio de trabajo

1
cd /tmp

Nos descargamos la última versión del repositorio oficial y la descomprimimos

1
2
3
4
LATEST_AWX=$(curl -s https://api.github.com/repos/ansible/awx/tags |egrep name |head -1 |awk '{print $2}' |tr -d '"|,')
curl -L -o ansible-awx-$LATEST_AWX.tar.gz https://github.com/ansible/awx/archive/$LATEST_AWX.tar.gz
tar xvfz ansible-awx-$LATEST_AWX.tar.gz
rm -f ansible-awx-$LATEST_AWX.tar.gz

Si queremos instalar cualquier otra version, simplemente tendremos que dar a la variable LATEST_AWX el valor de la versión que queramos instalar. Aquí encontrareis todas las releases disponibles.

Entramos en la carpeta de instalación y lanzamos el deploy

1
2
cd awx-$LATEST_AWX/installer
ansible-playbook -i inventory install.yml

Comprobamos que los contenedores estén arrancados

1
docker ps

Configuramos firewall

1
2
firewall-cmd --permanent --add-service=http
firewall-cmd --reload

Acceso al portal.

Para acceder a Ansible AWX, desde nuestro navegador favorito accederemos a https://ip-de-mi-servidor/

Las credenciales por defecto son:

Usuario: Admin Passsword: Password.

awx01 awx01 awx01

Actualizar version de Ansible AWX y migrar datos a otra instancia.

Para actualizar la versión de nuestra instancia de Ansible AWX, no existe un procedimiento cómo tal. El proceso para por destruir nuestros contenedores Docker y volver a generarlos con los binarios de la versión mas reciente siguiendo el anterior procedimiento.

Lo que sí existe, es un procedimiento para migrar los datos de una instancia de AWX a otra. Cosa que nos va a ir de lujo en cualquier actualización de versión.

En este enlace encontrareis el procedimiento oficial, el cual básicemente explica cómo hacer un backup y luego un restore de la configuración de nuestro Ansible AWX.

Instalación y configuración de Tower CLI

1
2
3
4
5
pip install ansible-tower-cli
tower-cli config username admin
tower-cli config password password
tower-cli config verify_ssl False
tower-cli config

Podreis encontrar información extensa sobre la configuración de Tower CLI en este post

Backup de la configuración

1
tower-cli receive --tower-host http://192.168.6.156 --all >  /tmp/test.json

Restore de la configuración

1
time tower-cli send --tower-host http://192.168.6.152 /tmp/test.json

Bibliografía

Este procedimiento es el resultado de la recopilación de información de los siguientes posts:

https://github.com/ansible/awx

https://medium.com/swlh/ansible-awx-installation-5861b115455a

https://ahmermansoor.blogspot.com/2019/09/install-ansible-awx-with-docker-compose-on-centos-7.html

https://www.unixarena.com/2019/03/backup-restore-ansible-awx-tower-cli.html/

Espero que os guste.

Un saludo!

Miquel.

0%