¿Qué es y cómo crear un Playbook en Ansible?

| Última modificación: 26 de junio de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

La automatización es clave en el mundo de DevOps, y Ansible es una herramienta poderosa que facilita este proceso. Uno de los componentes esenciales de Ansible son los Playbooks. Si te has preguntado qué es un Playbook en Ansible y cómo puede ayudarte a simplificar la gestión y configuración de servidores, estás en el lugar correcto. En este artículo, te explicaremos en detalle qué es un Playbook en Ansible, cómo funciona, y por qué es una herramienta imprescindible para cualquier profesional de TI.

Playbook en Ansible

¿Qué es un playbook en Ansible?

Un Playbook en Ansible son cada uno de los scripts que monta el usuario, es decir, un fichero que describe el paso a paso a ejecutar en una máquina determinada y que se usa para un objetivo específico o como plantilla que marca la hoja de ruta durante el inicio de un determinado proyecto. Un Playbook está formado por uno o más plays, que son los pasos a realizar y que pueden incluir una o más tareas, que se realizan de manera ordenada y solo una al mismo tiempo. Es importante mantener el orden correcto de estas tareas, ya que el Playbook se ejecutará de forma secuencial y seguirá la disposición determinada por el usuario.

Esta herramienta permite realizar más de una tarea en un mismo proceso, al tiempo que facilita la realización de tareas con un mayor nivel de dificultad. Además de esto, un Playbook en Ansible posibilita que el usuario realice un control de versiones, lo que le facilitará la gestión de las modificaciones realizadas durante el proceso de instalación. Otra de las funciones de un Playbook en Ansible es la de gestionar las configuraciones en los servidores, así como el despliegue de los servidores remotos junto con sus aplicaciones.

Características de un Playbook en Ansible

Ahora que sabes qué es un Playbook en Ansible, hablemos de sus características. Este fichero también puede ser definido como un plano técnico de las tareas encargadas de la automatización, y puede ser ejecutado en un grupo de hosts o nodos que conforman el inventario de Ansible. En este mismo sentido, un Playbook en Ansible se suele usar para automatizar la infraestructura de tecnología de la información, es decir, los elementos que se necesitan para controlar los entornos como los sistemas operativos, así como las redes, los sistemas de seguridad y otras herramientas usadas por los desarrolladores (por ejemplo, Git).

Un Playbook también facilita la programación de nodos de servidor, aplicaciones y servicios de una manera más rápida, debido a que evita que se tenga que desarrollar todo desde cero.

Otra de las características de esta herramienta es que está escrita en un lenguaje de texto plano, en el formato de serialización de datos YAML, que facilita la legibilidad y la capacidad de escritura del usuario de Ansible. El uso del lenguaje de declaración de datos YAML trae como resultado que un Playbook en Ansible necesite empezar con tres guiones (- – – ) y que requiera el uso de una sangría adecuada que funcione a través de espacios y no de tabuladores.

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

Además de esto, los Playbooks están integrados por plays también nodos, que tienen por objetivo el mapear a un grupo de hosts y que se ejecutan siguiendo un orden (el mismo para todos los plays). Por si alguna de estas tareas falla o presenta inconvenientes en su funcionamiento, esta debe tener la capacidad de volver a ser realizada, debido a que son idempotentes, es decir, obtienen el mismo resultado al ser ejecutadas.

Los nodos también permiten que el usuario lleve a cabo modificaciones y cambios en los servidores donde se trabaja. En ese caso, la plataforma Ansible detecta estos cambios y permite la gestión del resultado de una acción.

Los nodos que hacen parte de un Playbook en Ansible deben tener un nombre, el cual se incluye en la salida del comando cuando se ejecuta esta herramienta. Esto permite que el usuario de Ansible lea de una manera muy sencilla lo relacionado con la ejecución del Playbook.

Ejemplos prácticos de Playbooks

Para ilustrar cómo se crea un Playbook en Ansible, aquí tienes un ejemplo sencillo:

---
- hosts: webservers
  become: yes
  tasks:
    - name: Actualizar lista de paquetes
      apt:
        update_cache: yes
    - name: Instalar Apache
      apt:
        name: apache2
        state: present

Este Playbook se ejecuta en los hosts del grupo webservers, se asegura de que tiene permisos de superusuario (become: yes), actualiza la lista de paquetes y luego instala Apache.

Integración con otras herramientas

Ansible puede integrarse con diversas herramientas para mejorar los flujos de trabajo DevOps:

  • Jenkins: Para automatizar despliegues y pruebas.
  • Docker: Para la gestión de contenedores.
  • Kubernetes: Para la orquestación de contenedores.
  • Terraform: Para la gestión de infraestructuras.

Comparado con herramientas como Puppet y Chef, Ansible destaca por su simplicidad y facilidad de uso. No requiere agentes y utiliza SSH para comunicarse con los nodos, lo que simplifica la configuración inicial.

Crear y ejecutar el Playbook en Ansible

Para la creación de un Playbook en Ansible es necesario que el usuario trabaje desde el nodo de control y cree el archivo de texto dentro de una ruta del sistema. Además, se deberán ubicar los Playbooks en alguna de las carpetas del ordenador de control.

El código creado tendrá por característica que todas las líneas que inicien con # indicarán un comentario. Del mismo modo, aparecerá una declaración de tipo hosts, que se encargará de señalar en qué servidor se llevará a cabo el proceso. Después de esto, el usuario deberá establecer la tarea que se quiere ejecutar.

Para la ejecución de esta herramienta se debe ejecutar el comando ansible-playbook en el nodo de control seguido del nombre de archivo .yml donde se encuentre el código a ejecutar.

Con este artículo has podido aprender qué es un Playbook en Ansible, cuáles son sus principales características y funciones, cómo está conformado y cómo se crea y se ejecuta. Ahora, no dudes en continuar tu proceso de formación acerca de esta y otras herramientas a través de nuestro DevOps & Cloud Computing Full Stack Bootcamp, donde en menos de 6 meses podrás aprender todo lo necesario para convertirte en un experto en estos temas y destacar sobre tu competencia del sector IT. Da el siguiente paso e inscríbete y aprende sobre metodologías que te permitirán mejorar y agilizar tus procesos de desarrollo tecnológico.

Xoán Mallón

Senior DevOps Engineer en Zscaler & Coordinador del Bootcamp DevOps & Cloud Computing.

Posts más leídos

¡CONVOCATORIA ABIERTA!

DevOps & Cloud Computing

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado