Cómo instalar Ansible AWX en CentOS 8 Linux

1 mar 2021 5 min di lettura
Cómo instalar Ansible AWX en CentOS 8 Linux
Indice dei contenuti

Introducción

AWX son las siglas de "Ansible Web eXecutable". Es un proyecto de código abierto y gratuito que le permite administrar y controlar fácilmente su proyecto de Ansible. Proporciona una interfaz de usuario basada en web y un motor de actividades basado en Ansible. Proporciona una potente API REST y le permite administrar o sincronizar el inventario con otras fuentes en la nube, controlar el acceso e integrarse con LDAP.

En este tutorial, le mostraremos cómo instalar Ansible AWX con Docker en CentOS 8.

Prerrequisitos

  • Un servidor que ejecuta CentOS 8 con al menos 4 GB de RAM.
  • Un usuario no root con privilegios sudo.

Si desea instalar Ansible AWX en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Instalar dependencias

Antes de comenzar, deberá instalar el repositorio EPEL en su sistema. Puedes instalarlo con el siguiente comando:

sudo dnf install epel-release -y

A continuación, deberá instalar algunos paquetes adicionales necesarios para ejecutar AWX en su sistema. Puedes instalarlos todos con el siguiente comando:

sudo dnf install git gcc gcc-c++ ansible nano nodejs gettext device-mapper-persistent-data lvm2 bzip2 python3-pip -y

Una vez que se hayan instalado todos los paquetes, puede continuar con el siguiente paso.

Instalar Docker y Docker Compose

A continuación, deberá instalar Docker para ejecutar AWX dentro del contenedor de Docker. De forma predeterminada, la última versión de Docker no está disponible en el repositorio predeterminado de CentOS 8. Por lo tanto, deberá agregar el repositorio de Docker a su sistema. Puede agregar el repositorio de Docker con el siguiente comando:

sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Una vez agregado, instale la última versión estable de Docker con el siguiente comando:

sudo dnf install docker-ce-3:18.09.1-3.el7 -y

Una vez que se haya instalado Docker, verifique la versión instalada de Docker con el siguiente comando:

docker --version

Debería obtener el siguiente resultado:

Docker version 19.03.8, build afacb8b

Luego, inicie el servicio Docker y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:

sudo systemctl start docker
sudo systemctl enable docker

Puede verificar el estado del servicio Docker con el siguiente comando:

sudo systemctl status docker

Debería obtener el siguiente resultado:

● docker.service - Docker Application Container Engine
 Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
 Active: active (running) since Sat 2020-03-21 18:11:15 CET; 5s ago
 Docs: https://docs.docker.com
 Main PID: 8624 (dockerd)
 Tasks: 18
 Memory: 47.7M
 CGroup: /system.slice/docker.service
 ├─8624 /usr/bin/dockerd -H fd://└─8638 containerd --config /var/run/docker/containerd/containerd.toml --log-level info

Luego, instale el compositor de Docker usando el siguiente comando:

sudo pip3 install docker-compose

Una vez instalada, verifique la versión del compositor de Docker con el siguiente comando:

docker-compose --version

Debería ver el siguiente resultado:

docker-compose version 1.25.4, build unknown

Finalmente, ejecute el siguiente comando para configurar el comando de Python para usar Python 3:

sudo alternatives --set python /usr/bin/python3

Instalar Ansible AWX

Primero, descargue la última versión de Ansible AWX desde el repositorio de Git Hub usando el siguiente comando:

sudo git clone https://github.com/ansible/awx.git

A continuación, genere una clave secreta para cifrar el archivo de inventario con el siguiente comando:

sudo openssl rand -base64 30

Debería obtener un resultado similar al siguiente:

cAP5Ag+/Lwlg2i5+e8iZXKfHNbpjtUfW3dp/ZfGE
Nota: recuerde el código anterior, deberá pegarlo en el archivo de inventario.

Luego, cambie el directorio a awx/installer/ y edite el archivo de inventario:

cd awx/installer/
sudo nano inventory

Edite el archivo de esta manera:

localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"

 [all:vars]
 dockerhub_base=ansible
 awx_task_hostname=awx
 awx_web_hostname=awxweb
 postgres_data_dir="/var/lib/pgdocker"
 host_port=80
 host_port_ssl=443
 docker_compose_dir="~/.awx/awxcompose"
 pg_username=awx
 pg_password=awxpass
 pg_database=awx
 pg_port=5432
 pg_admin_password=password
 rabbitmq_password=awxpass
 rabbitmq_erlang_cookie=cookiemonster
 admin_user=admin
 admin_password=password
 create_preload_data=True
 secret_key=cAP5Ag+/Lwlg2i5+e8iZXKfHNbpjtUfW3dp/ZfGE
 awx_official=true
 awx_alternate_dns_servers="8.8.8.8,8.8.4.4"
 project_data_dir=/var/lib/awx/projects

Guarde y cierre el archivo cuando termine. Luego, crea un directorio para Postgres:

sudo mkdir /var/lib/pgdocker

Finalmente, ejecute el siguiente comando para instalar AWX:

sudo ansible-playbook -i inventory install.yml

Una vez que la instalación se haya completado correctamente, debería obtener el siguiente resultado:

...

 skipping: [localhost]

 TASK [local_docker: Load web image] **********************************************************************************************************
 skipping: [localhost]

 TASK [local_docker: Load task image] *********************************************************************************************************
 skipping: [localhost]

 TASK [local_docker: Set full image path for local install] ***********************************************************************************
 skipping: [localhost]

 TASK [local_docker: Set DockerHub Image Paths] ***********************************************************************************************
 ok: [localhost]

 TASK [local_docker: Create ~/.awx/awxcompose directory] **************************************************************************************
 changed: [localhost]

 TASK [local_docker: Create Docker Compose Configuration] *************************************************************************************
 changed: [localhost] => (item=environment.sh)
 changed: [localhost] => (item=credentials.py)
 changed: [localhost] => (item=docker-compose.yml)
 changed: [localhost] => (item=nginx.conf)

 TASK [local_docker: Render SECRET_KEY file] **************************************************************************************************
 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]

 PLAY RECAP ************************************************************************************************************************************
 localhost: ok=14 changed=6 unreachable=0 failed=0 skipped=95 rescued=0 ignored=0...

El comando anterior creará y lanzará todos los contenedores de Docker necesarios para AWX. Puede verificar los contenedores en ejecución con el siguiente comando:

sudo docker ps

Debería ver el siguiente resultado:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
 3a7ffee91018 ansible/awx_task:9.3.0 "/tini -- /bin/sh -c…" 13 minutes ago Up 13 minutes 8052/tcp awx_task
 179208933b55 ansible/awx_web:9.3.0 "/tini -- /bin/sh -c…" 13 minutes ago Up 13 minutes 0.0.0.0:80->8052/tcp awx_web
 86e4341934ca postgres:10 "docker-entrypoint.s…" 13 minutes ago Up 13 minutes 5432/tcp awx_postgres
 40538e9ddc0f memcached:alpine "docker-entrypoint.s…" 13 minutes ago Up 13 minutes 11211/tcp awx_memcached
 dfff98445d8e redis "docker-entrypoint.s…" 13 minutes ago Up 13 minutes 6379/tcp awx_redis

Configurar SELinux y Firewall (opcional)

De forma predeterminada, SELinux está habilitado en CentOS 8. Se recomienda deshabilitarlo para que funcione en AWX en el entorno Docker. Puede deshabilitarlo editando el siguiente archivo:

sudo nano /etc/sysconfig/selinux

Busque la SELINUX y cámbiela de la siguiente manera:

SELINUX = disabled

Guarde y cierre el archivo cuando termine. Luego, reinicie el sistema para implementar los cambios. A continuación, deberá permitir el servicio http y https a través de firewalld si está habilitado. Puede permitirlos con los siguientes comandos:

sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

Luego, reinicie el servicio firewalld para aplicar los cambios:

sudo firewall-cmd --reload

Inicie sesión en la interfaz web de AWX

Ahora abra su navegador web y escriba la URL de su nombre de dominio o dirección IP, http://DOMINIO_O_IP. Se le redirigirá a la página de inicio de sesión de AWX.

Ingrese el nombre de usuario y la contraseña que definió en el archivo de inventario y haga clic en el botón INICIAR SESIÓN. Debería ver el panel de AWX predeterminado.

Conclusión

Ha instalado AWX con Docker en CentOS 8. Ahora puede administrar y controlar fácilmente su proyecto de Ansible mediante la interfaz web de AWX.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.