Cómo funciona Ansible

¡Hola a todo el mundo! Volvemos por aquí para hablar un poco más sobre Ansible, la herramienta de automatización de Red Hat por excelencia. En el artículo anterior ¿Qué es Red Hat Ansible? analizamos en profundidad esta solución, haciendo hincapié en sus características principales (¡échale un vistazo al post aquí!). Hoy queremos ir un poco más allá y contaros los secretos de cómo funciona Red Hat Ansible.

Si estáis por aquí leyendo esto, seguramente sea porque os ha quedado el gusanillo de saber cómo funciona Red Hat Ansible en más detalle y estáis buscando respuestas. Estáis en el lugar adecuado. Como Red Hat Premier Partner, desde Essi Projects queremos ayudarte a comprender el funcionamiento de Red Hat Ansible desde un punto de vista práctico.

¡Sigue leyendo!

¿Cómo funciona Red Hat Ansible?

Antes de poder empezar a trabajar con Ansible, debemos comprender cuál es su arquitectura y cómo se estructura esta herramienta de automatización. Como os adelantábamos en ¿Qué es Red Hat Ansible?, los playbooks tienen un papel protagonista en Ansible. Veámoslo:

En primer lugar, debemos definir en el playbook (ficheros de sintaxis YAML) todas las tareas que queremos realizar. A continuación, es necesario establecer dentro de ese mismo playbook a qué servidor o conjunto de servidores queremos aplicar ese listado de tareas.

Aunque es dentro del playbook donde indicamos dichos servidores, es este mismo el que hace una búsqueda en un fichero destinados a ordenar el conjunto de servidores a lo que podemos acceder con Ansible.

Cómo funciona Red Hat Ansible Automation Platform

Playbooks en Red Hat Ansible

Este fichero es el inventario y se basa en una estructura INI, aunque también puede ser YAML, donde todo lo que se indique entre corchetes es una sección (grupo) y los valores que se escriben por debajo son sus elementos (servidores). El inventario es clave para poder establecer y organizar los servidores en grupos.

De esta forma, si queremos realizar las tareas en los servidores del entorno “desarrollo” no tenemos porqué escribir todos los servidores en el playbook. Indicando el grupo será suficiente. Podemos diferenciar entre dos tipos de inventarios distintos:

Estáticos, definidos en un fichero. Un administrador de inventario debe de actualizarlo de forma continua con las modificaciones de servidores que se lleven a cabo.

Dinámicos, basados en scripts que devuelven una salida JSON. Conectan con plataformas como CMDB, OpenStack, Satellite, LDAP, Cloud Providers, y reciben una lista de instancias.

Por defecto, el inventario que utiliza Ansible se encuentra en /etc/ansible/hosts

Los módulos

Los módulos, que son programas basados en Python y Powershell, permiten generar el código que se establece en los playbooks. Una vez se haya preparado el código será enviado a las máquinas destino y éstas serán las encargadas de ejecutarlo.

El punto fuerte de estos programas es que se basan en la idempotencia. Es decir, da igual las veces que ejecutes el mismo código en un mismo servidor, sólo hará cambios si es realmente necesario. Cuando los servidores tienen el estado correcto, los playbooks no realizarán cambios.

Playbooks: definición

Entender un poco mejor el concepto playbook se hace muy sencillo con la imagen siguiente, que lo define muy claramente:

– El Playbook es la lista de plays que se ejecutarán, definido en un fichero YAML

– En el bloque Play se definen los servidores o grupos (webservers) y parámetros adicionales, como los de conexión, usuario (root)…

– En el bloque Tasks se definen los módulos que vamos a utilizar (yum, service) con los diferentes atributos que reconocen dichos módulos (name, state)

Plugins en Red Hat Ansible

Otro punto fuerte de Red Hat Ansible son los plugins, piezas de código añadidas a Ansible para hacerlo más potente. Por ejemplo, gracias a los plugins podemos establecer diferentes tipos de conexiones a dispositivos de red o contenedores, así como formatear la salida de registro de la ejecución del playbook.

Ya que Red Hat Ansible está desarrollado bajo Python, este dispone de una API a la cual se puede acceder a través de scripts de Python.

¿Cómo es el workflow en red hat ansible?

Workflow en Red Hat Ansible Automation Platform

Llegados a este punto, debemos preguntarnos ¿cómo es el workflow de Red Hat Ansible cuando se ejecuta un playbook? Veámoslo.

En primer lugar, se revisan los servidores o grupos que se han indicado en el playbook y se buscan en el inventario.

A continuación, de no haber ningún problema con el primer paso, se verifican todos los módulos que van a ser llamados por el playbook. Se comprueba que los módulos existen y que los diferentes parámetros definidos son interpretados por estos módulos.

Una vez se hayan procesado todos los módulos indicados en el playbook, se genera un código ejecutable.

Este será enviado a los servidores mencionados en el playbook.

Por último, ¡voilà! El código será ejecutado en destino.

GIF Mindblown

Conclusión

Como podéis ver, el funcionamiento de Red Hat Ansible es muy sencillo y establecer tareas en los playbooks no requiere de conocimientos de programación adicionales.

Es cierto que podríamos rizar el rizo y jugar un poco más con Ansible para realizar tareas más complejas y ver cómo se comporta, pero eso lo dejamos para más adelante.

¡Mantente al día de las actualizaciones del blog si quieres saber más!

Bonus track

¿Quieres aprender los fundamentos de la automatización con Red Hat Ansible? ¡Esto es para ti!

Aprovecha esta oportunidad y haz el DO007 Ansible Basics: Automation Technical Overview de forma totalmente gratuita. El curso cubre los fundamentos de todo lo que debes saber sobre Ansible, incluyendo características clave como los playbooks, y el automation controller.

 

¡Esperamos que te haya sido de utilidad!

Esta es sólo una pequeña explicación sobre Red Hat Ansible. 

Si estás interesado o interesada en soluciones de automatización y gestión de IT no dudes en pedirnos más información. ¡Será un placer ayudarte!

Además, si tienes alguna duda, será un placer ayudarte. Puedes ponerte en contacto con nosotros a través del Formulario de Contacto o enviando un correo a info@essiprojects.com

juan antonio coello

Juan Antonio Coello
DevOps Engineer & Red Hat Instructor

¿QUIEN SOMOS?

Somos especialistas en DevOps Ecosystem y ayudamos a las empresas a revolucionar su infrastructura de servicios y aplicaciones para soportar su éxito.

A través de proyectos de consultoría, integración y formación técnica certificada, ofrecemos soluciones basadas en Open Hybrid Cloud Pass, Management & Automation, Monitoring & Performance, Middleware Solutions y Email & Collaboration.

¡Únete a nuestra newsletter!
Mantente al día de las últimas novedades del sector IT

POSTS RECIENTES

CATEGORÍAS

Etiquetas