En aquest tema, aprendrem a escriure el nostre primer Playbook d'Ansible. Un Playbook és un fitxer YAML que conté una sèrie de tasques que Ansible ha d'executar en els nodes gestionats. Els Playbooks són el cor d'Ansible i permeten automatitzar tasques complexes de manera senzilla i repetible.
Objectius
- Entendre l'estructura bàsica d'un Playbook.
- Escriure un Playbook senzill per instal·lar i configurar un servei.
- Executar el Playbook i verificar els resultats.
Estructura bàsica d'un Playbook
Un Playbook d'Ansible està escrit en format YAML i segueix una estructura específica. A continuació es mostra un exemple bàsic de Playbook:
--- - name: Instal·lar i configurar Apache hosts: webservers become: yes tasks: - name: Instal·lar el paquet Apache apt: name: apache2 state: present - name: Iniciar el servei Apache service: name: apache2 state: started enabled: yes
Explicació del Playbook
---
: Indica l'inici d'un document YAML.- name: Instal·lar i configurar Apache
: Defineix el nom del play. Un play és una sèrie de tasques que s'executen en un grup de hosts.hosts: webservers
: Especifica el grup de hosts en els quals s'executarà el play. Aquest grup ha d'estar definit en el fitxer d'inventari.become: yes
: Indica que les tasques s'executaran amb privilegis d'administrador (sudo).tasks
: Defineix la llista de tasques que s'executaran en els hosts especificats.- name: Instal·lar el paquet Apache
: Defineix el nom de la tasca.apt
: Utilitza el mòdulapt
per gestionar paquets en sistemes basats en Debian.name: apache2
: Especifica el nom del paquet a instal·lar.state: present
: Indica que el paquet ha d'estar instal·lat.- name: Iniciar el servei Apache
: Defineix una altra tasca per iniciar el servei Apache.service
: Utilitza el mòdulservice
per gestionar serveis.name: apache2
: Especifica el nom del servei.state: started
: Indica que el servei ha d'estar en execució.enabled: yes
: Indica que el servei ha d'estar habilitat per iniciar-se automàticament en arrencar el sistema.
Executant el Playbook
Per executar el Playbook, utilitzarem la comanda ansible-playbook
. Assegura't que tens un fitxer d'inventari que defineixi el grup de hosts webservers
.
Exemple de fitxer d'inventari (hosts
):
Comanda per executar el Playbook:
On hosts
és el fitxer d'inventari i playbook.yml
és el fitxer del Playbook.
Exercici Pràctic
Objectiu
Escriure un Playbook que instal·li Nginx en un grup de hosts anomenat webservers
i asseguri que el servei estigui en execució.
Passos
- Crea un fitxer anomenat
nginx-playbook.yml
. - Escriu el següent contingut en el fitxer:
--- - name: Instal·lar i configurar Nginx hosts: webservers become: yes tasks: - name: Instal·lar el paquet Nginx apt: name: nginx state: present - name: Iniciar el servei Nginx service: name: nginx state: started enabled: yes
- Crea un fitxer d'inventari anomenat
hosts
amb el següent contingut:
- Executa el Playbook amb la comanda:
Solució
El Playbook nginx-playbook.yml
hauria de tenir aquest aspecte:
--- - name: Instal·lar i configurar Nginx hosts: webservers become: yes tasks: - name: Instal·lar el paquet Nginx apt: name: nginx state: present - name: Iniciar el servei Nginx service: name: nginx state: started enabled: yes
Resum
En aquest tema, hem après a escriure un Playbook bàsic d'Ansible per instal·lar i configurar un servei. Hem vist l'estructura d'un Playbook, com definir tasques i com executar el Playbook en un grup de hosts. Aquest és el primer pas per automatitzar tasques amb Ansible, i en els següents temes, explorarem funcionalitats més avançades per fer els nostres Playbooks més potents i flexibles.
Ansible: De Principiant a Avançat
Mòdul 1: Introducció a Ansible
Mòdul 2: Conceptes bàsics d'Ansible
Mòdul 3: Playbooks
- Introducció als Playbooks
- Escrivint el teu primer Playbook
- Estructura del Playbook
- Variables i Fets
- Condicionals i Bucles
Mòdul 4: Rols
Mòdul 5: Tècniques Avançades de Playbook
Mòdul 6: Ansible Galaxy
Mòdul 7: Ansible Tower
- Introducció a Ansible Tower
- Instal·lant Ansible Tower
- Utilitzant Ansible Tower
- Gestionant Projectes i Inventaris