Crear un playbook de Ansible
Estructura de un playbook de Ansible
Un playbook de Ansible es un archivo de configuración basado en YAML que define el estado deseado de tu infraestructura. Consiste en una o más "plays", cada una de las cuales se dirige a un conjunto específico de hosts y ejecuta una serie de "tareas" en esos hosts.
A continuación, se muestra un ejemplo de un simple playbook de Ansible:
- hosts: all
tasks:
- name: Install Apache
apt:
name: apache2
state: present
- name: Start Apache
service:
name: apache2
state: started
En este ejemplo, el playbook se dirige a todos los hosts y realiza dos tareas: instalar el servidor web Apache y iniciar el servicio de Apache.
Definir hosts
Ansible utiliza un archivo de "inventario" para definir los hosts a los que se dirigirá tu playbook. El archivo de inventario puede ser un simple archivo de texto o un script dinámico que genere la lista de hosts.
A continuación, se muestra un ejemplo de un simple archivo de inventario:
[webservers]
web01 ansible_host=192.168.1.100
web02 ansible_host=192.168.1.101
[databases]
db01 ansible_host=192.168.1.200
db02 ansible_host=192.168.1.201
En este ejemplo, el archivo de inventario define dos grupos de hosts: "webservers" y "databases".
Ejecutar un playbook de Ansible
Para ejecutar un playbook de Ansible, puedes utilizar el comando ansible-playbook. A continuación, se muestra un ejemplo:
ansible-playbook -i inventory.txt playbook.yml
Este comando ejecuta el playbook definido en el archivo playbook.yml, utilizando el archivo de inventario inventory.txt.
Variables y plantillas de Ansible
Ansible admite el uso de variables y plantillas para hacer que tus playbooks sean más flexibles y reutilizables. Puedes definir variables en tu playbook o en un archivo separado y utilizarlas para personalizar el comportamiento de tus tareas.
Ansible también admite el uso de plantillas Jinja2, que te permiten generar dinámicamente archivos de configuración u otro contenido en función de tus variables.
Al dominar el uso de playbooks, variables y plantillas de Ansible, puedes crear soluciones de automatización potentes y escalables para tu infraestructura.