En primer lugar instalamos todos los componentes necesario para la actualización
apt -y install python3 python3-pip git pwgen vim python3-docker python3-tower-cli
pip3 install requests==2.14.2
Instalamos docker-compose
pip3 install docker-compose ansible
pip install docker-compose ansible
También podemos instalar de la siguiente forma docker-compose
En caso de no tener seleccionado como principal la versión de pyton 3 lo configuramos
update-alternatives --install /usr/bin/python python /usr/bin/python3 2
Creamos una carpeta temporal donde guardaremos los backups
mkdir /tmp/ansible/
cd /tmp/ansible/
Realizamos un backup de la base de datos
docker exec awx_postgres pg_dump -U awx -Fc awx > /tmp/ansible/awx_postgres_db.dump
de la misma forma, hacemos un backup de AWX
tower-cli config host https://192.168.1.68
tower-cli config verify_ssl false
tower-cli config username admin
tower-cli config password PASSWORD
tower-cli receive --all > /tmp/ansible/backup.json
Comprobamos que hayan creado correctamente los backups
ls -lstha
total 17M
116K -rw-r--r-- 1 root root 116K Apr 29 17:28 backup.json
0 drwxr-xr-x 2 root root 53 Apr 29 17:22 .
17M -rw-r--r-- 1 root root 17M Apr 29 17:21 awx_postgres_db.dump
4.0K drwxrwxrwt 11 root root 4.0K Apr 29 17:21 ..
Paramos todas las instancias y las eliminamos
docker stop awx_postgres awx_task awx_web awx_memcached awx_rabbitmq
docker rm -f awx_postgres awx_task awx_web awx_memcached awx_rabbitmq
Nos descargamos la ultima versión disponible estable de AWX
mkdir new-awx
cd new-awx
git clone https://github.com/ansible/awx.git
Accedemos a la carpeta y procedemos a instalar la nueva versión
cd awx/installer/
ansible-playbook -i inventory install.yml
Una vez finalizado restauramos el backup realizado anteriormente
tower-cli config host https://192.168.1.68
tower-cli config verify_ssl false
tower-cli config username admin
tower-cli config password PASSWORD
tower-cli send /tmp/ansible/backup.json
De la misma forma, restauramos la base de datos
docker exec -i awx_postgres pg_restore -U awx -C -d postgres < /tmp/ansible/awx_postgres_db.dump
Reiniciamos las instancias
docker restart awx_postgres awx_task awx_web awx_memcached awx_rabbitmq
Si todo a salido correctamente ya podemos acceder de nuevo a nuestro AWX con todos nuestros proyectos y credenciales.
No obstante, a mi me fallo unas cuantas veces hasta que conseguí restaurar todo
Mas información interesante:
:wq!