Guía de Ansible AWX: Uso y configuración básicos

AWX es una aplicación web de código abierto que proporciona una interfaz de usuario, una API REST y un motor de tareas para Ansible. Es la versión de código abierto de la Torre Ansible. El AWX te permite gestionar los playbooks de Ansible, los inventarios y programar trabajos para que se ejecuten mediante la interfaz web.

En este tutorial, te mostraremos el uso básico de Ansible AWX. Para ello, necesitas un servidor que ya tenga instalado Ansible AWX. Cubrimos algunas configuraciones básicas de Ansible AWX que debes conocer, como la configuración de las credenciales, los inventarios, la configuración y la ejecución de plantillas de trabajo, etc. Si aún no tienes instalado Ansible, consulta este tutorial:https://www.howtoforge.com/how-to-install-ansible-awx-with-nginx-reverse-proxy-on-ubuntu-1804/.

Requisitos previos

  • 2 o 3 servidores
    • 10.5.5.20 ansible-awx
    • 10.5.5.21 lemp
  • Conocimientos básicos sobre Ansible
  • Privilegios de root

Qué vamos a hacer:

  1. Instalación y configuración del entorno
  2. Configurar credenciales
  3. Configurar inventarios
  4. Configurar proyectos
  5. Configurar plantillas de trabajo
  6. Ejecutar trabajos

Paso 1 – Instalación y configuración del entorno

En este tutorial, vamos a desplegar y ejecutar el libro de jugadas de Ansible para la instalación básica de LEMP mediante el panel Ansible AWX.

Tenemos dos servidores para el propio awx y la máquina de destino.

10.5.5.20   ansible-awx
10.5.5.21   lemp

Ahora vamos a desplegar el libro de jugadas como el usuario llamado ‘hakase’ y utilizando la autenticación SSH basada en claves. Por tanto, asegúrate de que ya has configurado el usuario y la autenticación basada en clave en la máquina de destino ‘lemp’.

Haz la prueba utilizando el siguiente comando desde el servidor‘ansible-awx‘.

su - hakase
ssh [email protected]

Asegúrate de que has iniciado la sesión sin ninguna contraseña.

Ahora el usuario ‘hakase’ debe tener la contraseña de root sin necesidad de ejecutar tareas.

En la máquina de destino‘lemp‘, ejecuta el comando sudo como se indica a continuación.

su - hakase
sudo su

Asegúrate de que has introducido los privilegios de root sin la contraseña.

Ahora debes instalar los paquetes python en todas las máquinas de destino gestionadas por Ansible.

sudo apt install python -y

Instalar Python

Paso 2 – Configurar las credenciales

En primer lugar, tenemos que configurar las Credenciales AWX de Ansible. Se utilizan para la autenticación cuando se lanzan y ejecutan trabajos contra servidores gestionados, se sincronizan con fuentes de inventario y se importan proyectos.

Por defecto, Ansible AWX admite muchas credenciales, como la de la máquina virtual a través de la autenticación SSH, la de Amazon Web Services, la de Google Compute Engine, la de OpenStack, la contraseña de Vault, la de Source Control, etc.

Para configurar las credenciales, haz clic en el menú«Credenciales» de la izquierda y haz clic en el botón «+» de la derecha.

Configurar credenciales

Ahora escribe las credenciales‘NOMBRE‘ y‘DESCRIPCIÓN’, y luego especifica el‘TIPO DE CREDENCIAL‘ aMáquina’.

Sencillamente, la credencial ‘Máquina’ te permitirá utilizar la autenticación SSH para gestionar servidores. Es compatible tanto con la autenticación basada en contraseñas como con la basada en claves.

Para esta guía, utilizaremos la autenticación basada en clave. Por tanto, escribe el nombre de usuario y pega las claves privadas de ese usuario.

autenticación basada en claves

Luego haz clic en el botón«GUARDAR«.

Como resultado, se ha creado el nuevo tipo de credenciales Ansible AWX ‘Máquina’.

Credenciales de Ansible AWX

Paso 3 – Configurar inventarios

Los inventarios son grupos de servidores anfitriones que gestiona Ansible AWX. Los inventarios te permiten crear un grupo con varios servidores anfitriones en él. Y facilita la gestión de diferentes servidores con diferentes entornos.

Para gestionar y aprovisionar servidores, debemos crear un nuevo grupo de inventario y luego añadir servidores anfitriones en ese grupo de inventario.

Para añadir un nuevo inventario, haz clic en el menú«Inventarios» de la izquierda, luego haz clic en el botón «+ » y elige el «Inventario».

Configurar los inventarios de AWX

Escribe el‘NOMBRE‘ y la‘DESCRIPCIÓN’ del inventario, y luego haz clic en el botón ‘GUARDAR‘.

Nombre y descripción

Ahora haz clic en la pestaña«HOSTS» y haz clic en el botón «+ « para añadir nuevos hosts.

alberga

Escribe el ‘NOMBREDEL HOST’, la ‘DESCRIPCIÓN y las‘VARIABLES’ con la configuración adicional para la dirección IP de la máquina de destino ‘ansible_host: 10.5.5.21’.

Nombre de host y variables

Ahora haz clic en el botón«GUARDAR«.

A continuación, debemos asegurarnos de la configuración de los hosts comprobando los mismos mediante el comando ping.

Vuelve a la pestaña«HOSTS», marca el servidor de nombres de tus hosts y haz clic en el botón«EJECUTAR COMANDOS«.

ejecutar comandos

Ahora elige el‘MÓDULO‘ llamado‘ping‘, haz clic en el botón de búsqueda dentro del‘CREDENCIAL DE LA MÁQUINA‘ y‘SELECCIONA’ el tuyo, luego haz clic en el botón‘LANZAR‘.

Credencial de la máquina

Y serás redirigido a la nueva página y a continuación se muestra el resultado.

Resultado de la ejecución del script awx

Se ha creado un nuevo inventario y se ha añadido en él el servidor de la máquina de destino.

Paso 4 – Configurar los proyectos

Los proyectos se representan como Ansible Playbooks en la AWX. Son colecciones de Ansible Playbooks que podemos gestionar a través del directorio local del proyecto o utilizando el sistema SCM como Git, Subversion, Mercurial y RedHat Insights.

Para crear nuevos proyectos, haz clic en el menú«Proyectos» de la izquierda y haz clic en el botón «+».

Proyectos AWX

Escribe el‘NOMBRE’ de tu proyecto y la‘DESCRIPCIÓN’, luego elige el‘TIPO DE SCM‘ a‘Git‘ y pega el repositorio de tu libro de jugadas.

Nombre, descripción y tipo de scm

Ahora haz clic en el botón ‘GUARDAR‘ y como resultado, se ha creado un nuevo proyecto para el libro de jugadas.

Se ha añadido el proyecto

Además:

Si quieres crear un nuevo proyecto con el tipo de SCM‘Manual‘, puedes crear un nuevo directorio de playbooks situado en el directorio‘/var/lib/awx/projects‘.

El directorio ‘/var/lib/awx/projects’ es el directorio de proyectos por defecto para tus playbooks de Ansible si utilizas la versión docker de AWX con el‘project_data_dir’ activado.

Paso 5 – Crear nuevas plantillas de trabajo

La plantilla de trabajo es la propia definición de la ejecución de los libros de juego Ansible. Así que, para crear una nueva plantilla de trabajo o ejecutar la plantilla de trabajo, necesitamos añadir el playbook de Ansible de nuestro ‘Proyecto’, las ‘Credenciales’ para la autenticación, y las máquinas de destino que se almacenan en los ‘Inventarios’.

Para esta guía, ya hemos creado un nuevo Proyecto, Credenciales e Inventario. Por lo tanto, sólo tienes que hacer clic en el menú«Plantillas» de la izquierda, luego hacer clic en el botón » + » y elegir la opción«Plantilla de trabajo«.

Añadir plantilla de trabajo

Ahora tienes que escribir el‘NOMBRE‘ y la‘DESCRIPCIÓN’ del trabajo. Luego elige el ‘INVENTARIO‘, el‘CREDENCIAL‘ y el‘PROYECTO‘. Y después de eso, especifica el ‘LIBRO DE JUEGO‘ que quieres ejecutar y desplegar.

Añadir detalles del proyecto de trabajo

Y como resultado, se ha creado la nueva plantilla de trabajo Ansible AWX.

Paso 6 – Ejecutar la plantilla de trabajo

Después de crear la nueva plantilla de trabajo, ejecutaremos la plantilla de trabajo y desplegaremos los ‘Proyectos’ de Playbooks en los hosts de destino en el ‘Inventario’.

Haz clic en el menú«Plantillas» de la izquierda y obtendrás una lista de las plantillas de trabajo disponibles.

Ejecuta la plantilla de trabajo

Una vez que el trabajo esté terminado, obtendrás el signo verde dentro del nombre de la plantilla de trabajo.

Resultado de la ejecución de la plantilla

Haz clic en el signo verde dentro del nombre de la plantilla de trabajo y se te mostrará el resultado real de ese trabajo.

Resultado del trabajo

El trabajo se ha completado con éxito, y en la máquina de destino se ha instalado la pila LEMP a través de Ansible AWX.

Paso 7 – Prueba de la máquina de destino

Prueba el nombre de dominio de la máquina de destino. La configuración del nombre de dominio se almacena en la configuración‘roles/web/vars/main.yml‘.

Prueba del servidor de destino

Comprobando los servicios Nginx y PHP-FPM mediante los comandos systemctl.

systemctl status nginx
systemctl status php7.2-fpm

Estado de Nginx y php-fpm

Comprobación de la base de datos MySQL en la máquina de destino. Detalla la configuración de la base de datos MySQL almacenada en el archivo de configuración ‘roles/db/vars/main.yml’.

Estado de MySQL

Como resultado, la pila LEMP se ha instalado en la máquina de destino a través de Ansible AWX.

Referencia

Scroll al inicio