Ansible¶
7. ¿Y ahora qué?¶
7.1 Lo que queda por descubrir¶
Hasta este punto ya es posible automatizar el despliegue y la configuración de sistemas sencillos mediante playbooks. Sin embargo, Ansible dispone de muchas más herramientas pensadas para proyectos de mayor tamaño.
Entre las más importantes destacan:
| Concepto | ¿Para qué sirve? |
|---|---|
| Roles | Dividir un playbook grande en componentes reutilizables. |
| Ansible Galaxy | Reutilizar roles desarrollados por la comunidad o publicar los propios. |
| Templates (Jinja2) | Generar archivos de configuración dinámicamente. |
Bucles (loop) |
Ejecutar una tarea varias veces con distintos valores. |
Bloques (block) |
Agrupar tareas y gestionar errores de forma conjunta. |
| Vault | Almacenar contraseñas y secretos cifrados. |
| Facts | Obtener información automática sobre los nodos gestionados. |
| Variables externas | Organizar la configuración mediante group_vars y host_vars. |
| Colecciones | Instalar módulos y plugins desarrollados por terceros. |
| Plugins | Ampliar el comportamiento de Ansible con nuevos componentes. |
No es necesario conocer todos estos mecanismos para empezar a trabajar con Ansible. De hecho, muchos proyectos pequeños pueden resolverse únicamente con los conceptos vistos en este manual. Sin embargo, cuando el número de servidores, aplicaciones o equipos crece, estas herramientas permiten mantener los playbooks organizados, reutilizables y fáciles de mantener.
7.2 Un ejemplo con Ansible Galaxy¶
Uno de los mayores atractivos de Ansible es que gran parte del trabajo ya está hecho por la comunidad.
El repositorio Ansible Galaxy reúne miles de roles preparados para instalar y configurar aplicaciones habituales sin necesidad de escribir todo desde cero.
Por ejemplo, el rol geerlingguy.php instala PHP y sus dependencias de forma completamente automatizada.
Primero se instala el rol en la máquina desde la que se ejecuta Ansible:
| Instalación de un rol | |
|---|---|
Después puede utilizarse desde cualquier playbook:
Los roles también pueden declararse directamente en la sección roles del play, que es la forma más habitual
de utilizarlos. Internamente, Ansible ejecuta el rol antes de las tareas definidas en la sección tasks.
Sin conocer el funcionamiento interno del rol, en apenas unas líneas se incorpora soporte para PHP al servidor web desplegado en el capítulo anterior.
Este ejemplo ilustra una de las grandes fortalezas de Ansible: reutilizar soluciones ya desarrolladas por la comunidad, reduciendo el tiempo necesario para automatizar nuevas infraestructuras.
Antes de utilizar un rol...
Aunque Ansible Galaxy contiene miles de roles, conviene revisar siempre su documentación, su nivel de mantenimiento y la confianza que ofrece el autor antes de incorporarlo a un entorno de producción.
Los ejemplos pueden cambiar con el tiempo
Los roles publicados en Ansible Galaxy son desarrollados por la comunidad y evolucionan continuamente. Algunos dejan de mantenerse, cambian de nombre o pasan a formar parte de colecciones. Los ejemplos mostrados en esta sección pretenden ilustrar el concepto de reutilización de código, aunque con el tiempo pueda ser necesario sustituirlos por otros equivalentes.
Pero aún quiero recalcar la idea de aprovechar el trabajo de la comunidad y la reutilización de código de la comunidad. En el capítulo anterior se ha construido paso a paso un playbook de unas 65 líneas con fines didácticos. Sin embargo, una de las mayores fortalezas de Ansible consiste precisamente en no tener que reinventar la rueda. Gracias a Ansible Galaxy es posible reutilizar el trabajo realizado por la comunidad. Por ejemplo, el siguiente playbook delega toda la instalación y configuración de Apache en un rol ya desarrollado:
| Instalación de un rol para Apache2 | |
|---|---|
Solo quedaría la parte del despliegue de git que descarga el contenido web...
7.3 Fin del manual¶
Este manual ha pretendido servir como una introducción práctica a Ansible.
A lo largo de sus capítulos se han recorrido los conceptos fundamentales para empezar a automatizar la administración de sistemas: inventarios, comandos ad-hoc, playbooks, variables, condiciones, handlers y despliegues sencillos de aplicaciones.
Con estos conocimientos ya es posible crear automatizaciones útiles para pequeños y medianos entornos, y comprender la filosofía declarativa sobre la que se basa Ansible.
Naturalmente, quedan muchos temas por explorar. Roles, plantillas Jinja2, Vault, Galaxy, colecciones, pruebas automatizadas o la integración con herramientas de CI/CD forman parte del siguiente nivel de aprendizaje.
Quizá este manual continúe algún día con una segunda parte dedicada a esos temas más avanzados.
Mientras tanto, la mejor forma de seguir aprendiendo es la misma que con cualquier otra herramienta de administración de sistemas: automatizar tareas reales, experimentar y consultar la documentación oficial cuando aparezcan nuevas necesidades.
📅 Documento escrito el 01/06/2026 · Última revisión: 02/07/2026 · Versión: v1.0