/ Ansible / Linux / Python

AWX instalación de ambiente PRD con Docker en Centos 7

Hola a todos! 

En este artículo se verá cómo desplegar Ansible AWX el Open Source de Ansible Tower.

Requerimientos para Centos 7:

1. Actualizar el OS

yum update

2. Instalar el epel-realease

yum install epel-release -y 
o
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y

3. Instalar paquetes necesarios

yum install ansible git nodejs npm python-devel python-pip python-docker-py vim-enhanced yum-utils device-mapper-persistent-data lvm2 -y
yum groupinstall 'Development Tools' -y
pip install docker --upgrade


4. Configurar el docker-ce

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

5. Instalar el docker-ce

yum install docker-ce -y

6. Iniciar y habilitar docker

systemctl start docker & systemctl enable docker

7. Clonar AWX

git clone https://github.com/ansible/awx.git
cd awx/
git clone https://github.com/ansible/awx-logos.git
pwd

8. Configurar inventario

cd installer/
vim inventory

#INVENTORY FILE
postgres_data_dir=/var/lib/pgdocker
awx_official=true
awx_alternate_dns_servers="4.2.2.1,4.2.2.2"
project_data_dir=/var/lib/awx/projects

Esto también se puede hacer con el comando sed:

cd installer/
sed -i 's#postgres_data_dir=.*#postgres_data_dir=/var/lib/pgdocker#g' inventory
sed -i 's#awx_official=.*#awx_official=true#g' inventory
sed -i 's#awx_alternate_dns_servers=.*#awx_alternate_dns_servers="8.8.8.8,8.8.4.4"#g' inventory
sed -i 's#project_data_dir=.*#project_data_dir=/var/lib/awx/projects#g' inventory

9. Verificar la configuración:

cat inventory |grep -v "#"

#INVENTORY FILE

dockerhub_base=ansible
dockerhub_version=latest
rabbitmq_version=3.6.14 

awx_secret_key=awxsecret 

postgres_data_dir=/var/lib/pgdocker
host_port=80 

docker_compose_dir=/var/lib/awx 

pg_username=awx
pg_password=awxpass
pg_database=awx
pg_port=5432 

awx_official=true 

awx_alternate_dns_servers="4.2.2.1,4.2.2.2"

project_data_dir=/var/lib/awx/projects

10. Desplegar AWX via docker, esto tomaré varios minutos, paciencia! 

ansible-playbook -i inventory install.yml -vv

11. Una vez que termine el paso anterior, verificar si existen los dockers

docker container ls

12. Desactivar el firewall o habilitar los puertos que necesiten los dockers

systemctl stop firewalld

13.  Ingresar a la URL http://localhost:80 con las credenciales admin/password

AWX Login

14. Aparecerá el panel de mando

panel de mando AWX

Eso sería todo con la instalación.

Troubleshooting:

1. Carga de datos de prueba

En caso que se te presente esta imagen:

Error de AWX

Es porque está cargando la data de prueba, que demora unos 10 minutos aproximadamente. Para evitar esto sólo se necesita cambiar este parámetro en el archivo "inventory"

create_preload_data=True

2. Verificar dockers

docker container ls

3. Verificar logs del docker

docker logs $NAME_ID

4. Ingresar el bash del docker

docker exec -it $NAME_ID /bin/bash

 

Hasta pronto!