Cómo instalar Ansible AWX en Debian 11
Ansible AWX es una aplicación web gratuita y de código abierto patrocinada por Red Hat que te permite gestionar los inventarios y playbooks de Ansible. Proporciona una interfaz basada en web que hace más cómodo el uso de Ansible en un entorno informático. También proporciona una API REST que te ayuda a controlar el acceso, y a gestionar gráficamente o sincronizar el inventario con una amplia variedad de fuentes en la nube.
Este tutorial te mostrará cómo instalar el software Ansible AWX en Debian 11.
Requisitos previos
- Un servidor que ejecute Debian 11.
- Una contraseña de root configurada en el servidor.
Añadir el repositorio de Ansible
El paquete Ansible no está incluido por defecto en el repositorio de Debian 11. Así que tendrás que añadir el repositorio de Ansible en tu servidor.
En primer lugar, instala todas las dependencias necesarias utilizando el siguiente comando:
apt-get install apt-transport-https ca-certificates software-properties-common unzip gnupg2 curl git -y
Una vez instaladas todas las dependencias, edita el archivo sources.list y añade el repositorio de Ansible:
nano /etc/apt/sources.list
Añade la siguiente línea:
deb http://ppa.launchpad.net/ansible/ansible/ubuntu focal main
Guarda y cierra el archivo y luego añade la clave GPG con el siguiente comando:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
Obtendrás la siguiente salida:
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). Executing: /tmp/apt-key-gpghome.47eo2M3Kib/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 gpg: key 93C4A3FD7BB9C367: public key "Launchpad PPA for Ansible, Inc." imported gpg: Total number processed: 1 gpg: imported: 1
A continuación, actualiza la caché del repositorio con el siguiente comando:
apt-get update -y
Instalar Ansible en Debian 11
Ahora, ejecuta el siguiente comando para instalar Ansible utilizando el siguiente comando:
apt-get install ansible -y
Una vez instalado Ansible, verifica la versión de Ansible con el siguiente comando:
ansible --version
Obtendrás la siguiente salida:
ansible [core 2.11.6] config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3/dist-packages/ansible ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections executable location = /usr/bin/ansible python version = 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110] jinja version = 2.11.3 libyaml = True
Una vez que hayas terminado, puedes pasar al siguiente paso.
Instalar Docker CE
Por defecto, la última versión de Docker CE no está incluida en el repositorio por defecto de Debian 11. Así que tendrás que añadirla al APT.
En primer lugar, descarga y añade la clave GPG de Docker con el siguiente comando:
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
A continuación, añade el repositorio de Docker CE a la APT con el siguiente comando:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list
A continuación, actualiza el repositorio e instala Docker CE con el siguiente comando:
apt-get update -y apt-get install docker-ce -y
Una vez completada la instalación, verifica el estado del Docker con el siguiente comando:
systemctl status docker
Obtendrás la siguiente salida:
? docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-11-01 04:59:11 UTC; 26min ago TriggeredBy: ? docker.socket Docs: https://docs.docker.com Main PID: 5066 (dockerd) Tasks: 32 Memory: 1.0G CPU: 1min 57.723s CGroup: /system.slice/docker.service ?? 5066 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ??21970 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.18.0.2 -container-port 8052 ??21994 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 80 -container-ip 172.18.0.2 -container-port 8052 Nov 01 04:59:11 debian11 dockerd[5066]: time="2021-11-01T04:59:11.756163493Z" level=info msg="Docker daemon" commit=e2f740d graphdriver(s)=ove> Nov 01 04:59:11 debian11 dockerd[5066]: time="2021-11-01T04:59:11.756303194Z" level=info msg="Daemon has completed initialization" Nov 01 04:59:11 debian11 systemd[1]: Started Docker Application Container Engine. Nov 01 04:59:11 debian11 dockerd[5066]: time="2021-11-01T04:59:11.796631663Z" level=info msg="API listen on /run/docker.sock"
Para verificar la versión de Docker, ejecuta el siguiente comando:
docker -v
Deberías ver la siguiente salida:
Docker version 20.10.10, build b485636
Una vez que hayas terminado, puedes pasar al siguiente paso.
Instalar Docker Compose y otras dependencias
En primer lugar, descarga el binario de Docker Compose del repositorio Git utilizando el siguiente comando:
wget https://github.com/docker/compose/releases/download/1.29.0/docker-compose-Linux-x86_64
A continuación, mueve el binario descargado al directorio /usr/bin/:
mv docker-compose-Linux-x86_64 /usr/bin/docker-compose
A continuación, establece el permiso de ejecución para el binario docker-compose:
chmod +x /usr/bin/docker-compose
A continuación, verifica la versión de Docker Compose utilizando el siguiente comando:
docker-compose version
Obtendrás el siguiente resultado:
docker-compose version 1.29.0, build 07737305 docker-py version: 5.0.0 CPython version: 3.7.10 OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
A continuación, instala Node.js y NPM con el siguiente comando:
apt-get install nodejs npm -y npm install npm --global
A continuación, instala el PIP y otras dependencias utilizando el siguiente comando:
apt-get install python3-pip git pwgen -y
A continuación, instala el módulo Python para Docker Compose con el siguiente comando:
pip3 install docker-compose==1.29.0
Cuando hayas terminado, puedes pasar al siguiente paso.
Instalar Ansible AWX
En primer lugar, descarga Ansible AWX del repositorio Git Hub utilizando 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 al extraído y genera una clave secreta utilizando el siguiente comando:
cd awx-17.1.0/installer/ pwgen -N 1 -s 30
Obtendrás el siguiente resultado:
dGF8eiFiTkzpaqpWyckxSLe57sZNfJ
A continuación, edita el archivo de inventario y define tu clave secreta, nombre de usuario y contraseña de administrador:
nano inventory
Cambia las siguientes líneas:
admin_user=admin admin_password=securepassword secret_key=dGF8eiFiTkzpaqpWyckxSLe57sZNfJ
Guarda y cierra el archivo y ejecuta el playbook de Ansible para instalar Ansible AWX:
ansible-playbook -i inventory install.yml
Una vez instalado el Ansible AWX, obtendrás el siguiente resultado:
TASK [local_docker : Create Redis socket directory] ******************************************************************************************* changed: [localhost] TASK [local_docker : Create Docker Compose Configuration] ************************************************************************************* changed: [localhost] => (item={'file': 'environment.sh', 'mode': '0600'}) changed: [localhost] => (item={'file': 'credentials.py', 'mode': '0600'}) changed: [localhost] => (item={'file': 'docker-compose.yml', 'mode': '0600'}) changed: [localhost] => (item={'file': 'nginx.conf', 'mode': '0600'}) changed: [localhost] => (item={'file': 'redis.conf', 'mode': '0664'}) 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 -> 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
El libro de jugadas anterior descargará algunas imágenes Docker y creará un contenedor Ansible AWX.
Para verificar todas las imágenes Docker, ejecuta:
docker images
Deberías ver la siguiente salida:
REPOSITORY TAG IMAGE ID CREATED SIZE postgres 12 108ccc7c5fa3 5 days ago 371MB redis latest 7faaec683238 2 weeks ago 113MB centos 8 5d0da3dc9764 6 weeks ago 231MB ansible/awx 17.1.0 599918776cf2 7 months ago 1.41GB
Para verificar todos los contenedores en ejecución, ejecuta
docker ps
Deberías ver el siguiente resultado:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b6cd8d874b09 ansible/awx:17.1.0 "/usr/bin/tini -- /u…" 2 minutes ago Up 2 minutes 8052/tcp awx_task 65dd0c36334a ansible/awx:17.1.0 "/usr/bin/tini -- /b…" 5 minutes ago Up 2 minutes 0.0.0.0:80->8052/tcp, :::80->8052/tcp awx_web 4119ca4a1d24 postgres:12 "docker-entrypoint.s…" 5 minutes ago Up 2 minutes 5432/tcp awx_postgres 212b73bfe362 redis "docker-entrypoint.s…" 5 minutes ago Up 2 minutes 6379/tcp awx_redis
Accede a Ansible AWX
Ahora, abre tu navegador web y accede a la interfaz web de Ansible AWX utilizando la URL http://your-server-ip. Deberías ver la página de inicio de sesión de Ansible AWX:
Proporciona 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 siguiente pantalla:
Enhorabuena, has instalado correctamente Ansible AWX en Debian 11.