Cómo instalar Ansible AWX en Debian

Ansible es una herramienta de automatización de código abierto que se utiliza para el aprovisionamiento de software, la gestión de la configuración y el despliegue de aplicaciones. Te permite instalar, configurar y desplegar aplicaciones en varios sistemas de forma automática.

AWX es una aplicación basada en web que se utiliza para controlar Ansible. Puedes gestionar los playbooks, inventarios, Secretos y trabajos programados de Ansible desde una interfaz web AWX.

Características

  • Soporta múltiples nubes como AWS, Azure y GCP
  • Seguimiento de la actividad de los usuarios
  • Aumenta la eficiencia y la seguridad
  • Control de acceso de usuarios y autenticación basados en roles
  • Programación de trabajos
  • Notificaciones integradas

En este post, te mostraremos cómo instalar AWX en un servidor Debian 10.

Requisitos previos

  • Un servidor que ejecute Debian 10.
  • El servidor tiene configurada una contraseña de root.

Cómo empezar

En primer lugar, actualiza todos los paquetes del sistema a la última versión utilizando el siguiente comando:

apt-get update -y

Una vez actualizados todos los paquetes, instala otros paquetes necesarios con el siguiente comando:

apt-get install apt-transport-https ca-certificates software-properties-common unzip gnupg2 curl git -y

Una vez instalados todos los paquetes, puedes pasar al siguiente paso.

Instalar Ansible

A continuación, tendrás que instalar Ansible en tu sistema. Por defecto, la última versión de Ansible no está incluida en el repositorio de Debian 10. Así que tendrás que añadir el repositorio de Ansible a APT. Puedes añadirlo con el siguiente comando:

echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | tee /etc/apt/sources.list.d/ansible.list

Una vez añadido el repositorio, añade la clave GPG con el siguiente comando:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367

A continuación, actualiza el repositorio e instala la última versión de Ansible con el siguiente comando:

apt-get update -y
apt-get install ansible -y

Una vez instalado Ansible, puedes verificar la versión instalada de Ansible con el siguiente comando:

ansible --version

Deberías obtener la siguiente salida:

ansible 2.9.19
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0]

En este punto, Ansible está instalado en tu sistema. Ahora puedes pasar al siguiente paso.

Instalar Docker y Docker Compose

A continuación, tendrás que instalar Docker y Docker Compose en tu sistema. Por defecto, la última versión de Docker no está disponible en el repositorio por defecto de Debian 10. Así que tendrás que añadir el repositorio de Docker CE a tu sistema. En primer lugar, añade la clave Docker y el repositorio con el siguiente comando:

curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

A continuación, actualiza el repositorio e instala el Docker CE con el siguiente comando:

apt-get update -y
apt-get install docker-ce -y

Una vez instalado el Docker, verifica la versión de Docker con el siguiente comando:

docker --version

Deberías ver la siguiente salida:

Docker version 20.10.5, build 55c4c88

A continuación, tendrás que instalar la última versión de Docker Compose en tu sistema. Puedes descargar el binario de Docker Compose con el siguiente comando:

curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-Linux-x86_64 | cut -d '"' -f 4 | wget -qi -

Una vez completada la descarga, establece el permiso adecuado con el siguiente comando:

chmod +x docker-compose-Linux-x86_64

A continuación, mueve el binario de Docker Compose a la ruta del sistema con el siguiente comando:

mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

A continuación, verifica la versión de Docker Compose con el siguiente comando:

docker-compose version

Deberías obtener la siguiente salida:

docker-compose version 1.28.5, build c4eb3a1f
docker-py version: 4.4.4
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

En este punto, Docker y Docker Compose están instalados en tu sistema. Ahora puedes pasar al siguiente paso.

Instalar Node.js y NPM

A continuación, tendrás que instalar Node.js y NPM en tu sistema. Puedes instalar Node.js y NPM con el siguiente comando:

apt-get install nodejs npm -y
npm install npm --global

A continuación, instala otras dependencias de Python con el siguiente comando:

apt-get install python3-pip git pwgen -y

A continuación, instala el módulo Docker Compose que coincida con tu versión de Docker Compose con el siguiente comando:

pip3 install docker-compose==1.28.5

Una vez que hayas terminado, puedes pasar al siguiente paso.

Nota: Asegúrate de que 1.28.5 coincide con la versión de Docker Compose instalada en tu sistema.

Instalar AWX

A continuación, tendrás que instalar AWX en tu sistema. En primer lugar, descarga AWX desde el repositorio Git Hub con el siguiente comando:

wget https://github.com/ansible/awx/archive/17.1.0.zip

Una vez finalizada la descarga, descomprime el archivo descargado con el siguiente comando:

unzip 17.1.0.zip

A continuación, cambia el directorio a instalador con el siguiente comando:

cd awx-17.1.0/installer/

A continuación, genera la clave secreta ejecutando el siguiente comando:

pwgen -N 1 -s 30

Deberías obtener el siguiente resultado:

3BgGA8MnM4gKTXV8r7vQhwjjNixO6o

A continuación, edita el archivo de inventario y define tu nombre de usuario, contraseña y clave secreta de administrador:

nano inventory

Cambia las siguientes líneas:

admin_user=admin
admin_password=securepassword
secret_key=3BgGA8MnM4gKTXV8r7vQhwjjNixO6o

Guarda y cierra el archivo cuando hayas terminado e instala la AWX ejecutando el siguiente comando:

ansible-playbook -i inventory install.yml

Una vez que la AWX se haya instalado correctamente, deberías obtener la siguiente salida:

changed: [localhost]

TASK [local_docker : Create Docker Compose Configuration] *************************************************************************************
changed: [localhost] => (item={u'mode': u'0600', u'file': u'environment.sh'})
changed: [localhost] => (item={u'mode': u'0600', u'file': u'credentials.py'})
changed: [localhost] => (item={u'mode': u'0600', u'file': u'docker-compose.yml'})
changed: [localhost] => (item={u'mode': u'0600', u'file': u'nginx.conf'})
changed: [localhost] => (item={u'mode': u'0664', u'file': u'redis.conf'})

TASK [local_docker : Render SECRET_KEY file] **************************************************************************************************
changed: [localhost]

TASK [local_docker : Remove AWX containers before migrating postgres so that the old postgres container does not get used] ********************
ok: [localhost]

TASK [local_docker : Run migrations in task container] ****************************************************************************************
changed: [localhost]

TASK [local_docker : Start the containers] ****************************************************************************************************
changed: [localhost]

TASK [local_docker : Update CA trust in awx_web container] ************************************************************************************
changed: [localhost]

TASK [local_docker : Update CA trust in awx_task container] ***********************************************************************************
changed: [localhost]

TASK [local_docker : Wait for launch script to create user] ***********************************************************************************
ok: [localhost]

TASK [local_docker : Create Preload data] *****************************************************************************************************
changed: [localhost]

PLAY RECAP ************************************************************************************************************************************
localhost                  : ok=21   changed=12   unreachable=0    failed=0    skipped=73   rescued=0    ignored=1   

En este punto, AWX está instalado en tu sistema. Ahora puedes acceder a la interfaz web de AWX.

Acceder a Ansible AWX

Ahora, abre tu navegador web y accede a la interfaz web de Ansible AWX utilizando la URL http://your-server-ip. Se te redirigirá a la página de inicio de sesión de AWX:

Inicio de sesión en Ansible AWX

Introduce tu nombre de usuario y contraseña de administrador y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de Ansible AWX en la página siguiente:

Panel Ansible AWX

Conclusión

Enhorabuena! has instalado correctamente Ansible AWX en un servidor Debian 10. Ahora puedes gestionar fácilmente el playbook, el inventario y los trabajos de Ansible desde el panel de control de AWX. No dudes en preguntarme si tienes alguna duda.

Scroll al inicio