Red Hat ha proporcionado dos herramientas GUI para la gestión centralizada de nodos remotos mediante Ansible.
Ansible Tower es una interfaz basada en web y un punto final de API REST para Ansible. Proporciona registro y auditoría centralizados, control de acceso basado en roles e implementación con solo pulsar un botón.
AWX es una utilidad de automatización basada en Ansible Tower que proporciona una interfaz gráfica web, una API REST y un motor de tareas que permite a los usuarios administrar sus proyectos ansible. En otras palabras, podemos que AWX sea una versión de código abierto de Anisble Tower. Con AWX, puede realizar una serie de tareas que incluyen la gestión del inventario, automatización del flujo de trabajo, programación de trabajos, gestión de credenciales y reportando por mencionar solo algunos.
Una de las ventajas de AWX es que puede aprovechar todas las funciones empresariales que se incluyen con Ansible Tower para una cantidad ilimitada de nodos. En otras palabras, el límite de 10 nodos no se aplica a AWX. Además, AWX es ideal para entornos de laboratorio o desarrollo. Sin embargo, no se considera una herramienta ideal para entornos de producción en comparación con Torre Ansible.
AWX necesita un entorno en contenedores para funcionar. Un par de opciones que admiten AWX incluyen Kubernetes, OpenShift y Componer ventana acoplable. En esta guía, sin embargo, vamos a utilizar Docker compose porque es bastante fácil de configurar y es amigable con los recursos.
Requisitos para Ansible AWX
Antes de comenzar, asegúrese de que el nodo de CentOS 8 tenga lo siguiente:
- 4 GB de RAM
- CPU de 3,4 GHz con 2 núcleos
- 20 GB de espacio en disco duro
- CentOS 8 debe ejecutar Openshift, Docker o Kubernetes
- Ansible debe estar ya instalado
Con todos los requisitos cumplidos, ¡manos a la obra!
Paso 1) Instale EPEL en CentOS 8
Comience instalando EPEL en el nodo CentOS 8 porque proporciona algunos de los paquetes esenciales que requiere AWX. Por lo tanto, inicie sesión como usuario root en su nodo CentOS 8 y ejecute el comando:
[[email protected] ~]# dnf install epel-release -y
Paso 2) Instalar paquetes y dependencias adicionales
Además, debemos dar un paso adicional e instalar los paquetes esenciales que se requerirán a medida que avancemos con la instalación de AWX:
[[email protected] ~]# dnf install git gcc gcc-c++ nodejs gettext device-mapper-persistent-data lvm2 bzip2 python3-pip
Salida de muestra
Paso 3) Instale Docker CE en CentOS 8
RedHat / CentOS ya no admite la instalación directa de docker, por lo que si ejecuta dnf install docker-ce, se encontrará con un error. Para instalar Docker en CentOS 8, necesitamos agregar el repositorio de Docker al sistema usando la herramienta dnf config-manager.
[[email protected] ~]# dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
El siguiente paso es instalar Docker, ejecuta el comando:
[[email protected] ~]# dnf install docker-ce-3:18.09.1-3.el7
Ahora, ejecute el siguiente comando para saber qué versión exacta de Docker tenemos instalada.
[[email protected] ~]# rpm -qa | grep docker or [[email protected] ~]# docker --version
Ahora, proceda a iniciar y habilitar la ventana acoplable usando los comandos
[[email protected] ~]# systemctl start docker [[email protected] ~]# systemctl enable --now docker.service
Con Docker instalado, ahora podemos proceder a instalar Docker compose.
Nota: Ejecute el siguiente comando para configurar el comando python para usar python 3 porque en CentOS 8 y RHEL8, python 3 se instala como dependencia cuando instalamos ansible
[[email protected] ~]# alternatives --set python /usr/bin/python3
Paso 4) Instale Docker-Compose en CentOS 8
Para la instalación de docker-compose, usaremos el comando pip. Pip es el administrador de paquetes de Python que le permite instalar paquetes de Python.
Para instalar vamos a usar pip3 ya que el sistema se está ejecutando usando python3
[[email protected] ~]# pip3 install docker-compose
¡Estupendo! ahora podemos proceder a instalar AWX.
Paso 5) Instale Ansible AWX
Para instalar AWX, primero clone el repositorio de Git como se muestra:
[[email protected] ~]# git clone https://github.com/ansible/awx.git
A continuación, navegue hasta el directorio awx/installer y localice el archivo de inventario. Necesitamos ajustar algunos parámetros:
Nota: No olvide configurar el intérprete de python predeterminado en pitón3
[[email protected] ~]# cd awx/installer/ [[email protected] installer]# vi inventory localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python3" postgres_data_dir=/var/lib/pgdocker awx_official=true project_data_dir=/var/lib/awx/projects awx_alternate_dns_servers="4.2.2.1,4.2.2.2"
Igualmente crucial es la necesidad de configurar la contraseña de Admin y Postgres
[email protected] [email protected]
A partir de entonces, asegúrese de generar una clave criptográfica para el cifrado del archivo de inventario
[[email protected] ~]# openssl rand -base64 30
Copie la clave secreta y agréguela a la entrada secret_key de la siguiente manera en el archivo de inventario,
secret_key=SGYsSWciI5yRDQeZuEm5wW98pQeJMG+ACABPsGfC
Guarde y salga del archivo de inventario.
Para confirmar e imprimir los cambios realizados, ejecute el comando:
[[email protected]ansible installer]# grep -v '^#' inventory | grep -v '^$'
Para instalar AWX, ejecute el comando Ansible:
[[email protected] installer]# ansible-playbook -i inventory install.yml
Docker tarda entre 4 y 5 minutos en ejecutar los contenedores necesarios y construir contenedores, ¡así que relájese y disfrute de su taza de té! El resultado a continuación será una confirmación de que todo salió perfectamente bien.
Una vez finalizada la instalación, puede verificar los contenedores que se inician a través de docker-compose
[[email protected] installer]# docker ps
En caso de que el firewall del sistema operativo esté habilitado y en ejecución, permita el puerto http (80) y https (443) usando los siguientes comandos:
[[email protected] installer]# firewall-cmd --zone=public --add-masquerade --permanent [[email protected] installer]# firewall-cmd --permanent --add-service=http [[email protected] installer]# firewall-cmd --permanent --add-service=https [[email protected] installer]# firewall-cmd --reload
Paso 5) Acceso al portal GUI de AWX
Para acceder a la consola web de AWX, abra su navegador y escriba la IP del servidor AWX de Ansible y presione ENTER.
http://awx-server-ip-address
Proporcione el nombre de usuario y la contraseña para Admin y presione ENTER. A partir de entonces, se mostrará el tablero de AWX como se muestra:
Y así es como instala AWX con docker-compose en un servidor CentOS 8.
Leer también : Cómo ejecutar y programar Ansible Playbook mediante la GUI de AWX