El libro “Ansible” de Yannig Perre, publicado por Eni, se ha convertido en una herramienta esencial para cualquier administrador de sistemas Unix interesado en el mundo de la
, como el análisis de código y el uso de herramientas como Molecule y Docker, asegurando que la implementación de Ansible sea robusta, mantenible y escalable. Esta guía es, en definitiva, un recurso práctico y completo para aquellos que buscan transformar la gestión de sus infraestructuras.
Ansible es un agente menos (agentless) de automatización de infraestructura, que se distingue de otras herramientas como Puppet o Chef por su arquitectura centralizada y su enfoque en la
, que es la base de cualquier playbook de Ansible. Este inventario define la lista de servidores a los que se van a aplicar las tareas, y puede contener información sobre direcciones IP, nombres de host, usuarios, grupos, y hasta fuentes de información externas como AWS, ESX o Docker. Además, el libro profundiza en los mecanismos de Ansible, que incluyen el concepto de “tareas”, “condiciones”, “loops” y “paralelización”. Permite, por ejemplo, ejecutar tareas en paralelo para reducir el tiempo total de ejecución de un playbook. También se incluyen ejemplos concretos para administrar servidores Unix clásicos, pero el libro se expande rápidamente a la administración de máquinas virtuales en la nube (AWS, VMware/ESX), contenedores Docker y la gestión de clusters Kubernetes, demostrando la amplitud de su aplicabilidad. Un punto clave es la capacidad de realizar rolling updates con impacto mínimo en la producción, optimizando el despliegue de aplicaciones.
El libro «Ansible» de Yannig Perre ofrece una guía muy detallada sobre el funcionamiento interno de Ansible, y su aplicación en diferentes escenarios. El enfoque principal es el desarrollo de playbooks utilizando YAML. Además, el lector aprenderá a crear inventarios que definen la infraestructura que debe ser gestionada, e incluso a importar información de otras fuentes, como ESX, AWS o Docker. La organización de un proyecto Ansible implica, en primer lugar, la creación de un playbook, que es un archivo YAML que contiene una lista de “tareas”. Cada tarea define una acción a realizar (ej: instalar un paquete, crear un usuario, configurar un servicio) y puede contener condiciones que determinen cuándo se ejecuta, o variables que la modifiquen. El libro enfatiza la modularización de playbooks, para que sean más fáciles de entender, mantener y reutilizar.
Más allá de los conceptos fundamentales, el libro explora los mecanismos avanzados de Ansible, como la creación de parts Ansible, que son conjuntos de tareas reutilizables que pueden ser importados en múltiples playbooks. También se abordan técnicas más complejas como la personalización de módulos (creación de módulos específicos para necesidades particulares), la escritura de filtros Jinja, para manipular los datos durante la ejecución de los playbooks, y la utilización de callbacks, que son funciones que se ejecutan después de que una tarea ha sido completada. El libro se centra especialmente en el desarrollo de aplicaciones, utilizando ejemplos como la instalación y configuración de MediaWiki, donde el autor explora escenarios como la paralelización de tareas, el balanceo de carga con Haproxy, y las actualizaciones rolling.
Opinión Crítica de Ansible: con crítica y recomendaciones.
Ansible, al igual que cualquier herramienta de automatización, tiene sus limitaciones. Aunque su arquitectura centralizada y el uso de YAML lo hacen relativamente fácil de aprender, puede resultar un desafío para aquellos que no están familiarizados con el concepto de configuración sin agente. La dependencia de SSH puede ser un factor de seguridad si no se implementan las medidas de seguridad adecuadas para proteger las conexiones SSH. Además, la falta de una interfaz gráfica para la creación y gestión de playbooks puede ser un obstáculo para algunos usuarios, aunque la línea de comandos y las herramientas de visualización de Playbooks (como Ansible Tower) ofrecen alternativas. Sin embargo, la principal crítica se centra en la complejidad de los Playbooks de gran tamaño, que pueden volverse difíciles de entender y mantener si no se aplican las buenas prácticas de organización y modularización, lo que requiere una comprensión profunda de la herramienta.
A pesar de estas limitaciones, Ansible es una herramienta poderosa y versátil, y el libro de Yannig Perre proporciona una excelente introducción al mundo de la automatización con Ansible. El autor aborda los conceptos clave de manera clara y concisa, y ofrece ejemplos prácticos que facilitan el aprendizaje. Para aquellos que buscan una herramienta de automatización potente y flexible, con una comunidad de usuarios activa y una amplia gama de módulos disponibles, Ansible es una excelente opción. Se recomienda encarecidamente el libro para quienes estén comenzando a explorar la automatización y para aquellos que buscan un entendimiento profundo de las capacidades de Ansible. Recomendación: invertir tiempo en la familiarización con YAML y los conceptos de la orquestación para obtener el máximo provecho. Es vital comprender la arquitectura de Ansible para evitar problemas de rendimiento y seguridad.
