Red Hat ha proporcionado dos herramientas GUI para la gestión centralizada de nodos remotos mediante Ansible.
- Torre Ansible
- AWX
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 de 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, incluida la gestión de inventario , automatización del flujo de trabajo , programación de trabajos , administración de credenciales y informes 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 Ansible Tower. .
AWX necesita un entorno en contenedores para funcionar. Un par de opciones que admiten AWX incluyen Kubernetes , OpenShift y Composición Docker . 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 ya debe estar instalado
Con todos los requisitos cumplidos, ¡manos a la obra!
Paso 1) Instalar EPEL en CentOS 8
Comience por instalar 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 más 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) Instalar 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 de administrador de configuración dnf.
[[email protected] ~]# dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
El siguiente paso es instalar Docker, ejecute 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 habilite 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.
[[email protected] ~]# alternatives --set python /usr/bin/python3
Paso 4) Instalar 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 ejecuta 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 Git como se muestra:
[[email protected] ~]# git clone https://github.com/ansible/awx.git
A continuación, vaya al directorio awx/installer y localice el archivo de inventario. Necesitamos ajustar algunos parámetros:
[[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 cifrar el 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] 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 de GUI de AWX
Para acceder a la consola web de AWX, abra su navegador, 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.