Els mòduls són una part fonamental d'Ansible, ja que són les unitats de treball que Ansible executa en els nodes gestionats. En aquest tema, aprendrem què són els mòduls, com utilitzar-los i veurem alguns exemples pràctics.
Què són els Mòduls d'Ansible?
Els mòduls d'Ansible són petits programes que Ansible envia als nodes gestionats per executar tasques específiques. Cada mòdul està dissenyat per realitzar una tasca concreta, com ara gestionar usuaris, instal·lar paquets, copiar fitxers, etc.
Característiques dels Mòduls:
- Idempotència: Els mòduls estan dissenyats per ser idempotents, és a dir, executar-los múltiples vegades no canviarà l'estat del sistema si ja està en l'estat desitjat.
- Portabilitat: Els mòduls són portables i poden executar-se en diferents sistemes operatius.
- Extensibilitat: Ansible permet crear mòduls personalitzats per a tasques específiques.
Tipus de Mòduls
Ansible inclou una àmplia varietat de mòduls que es poden classificar en diferents categories:
Categoria | Descripció |
---|---|
System | Gestió d'usuaris, grups, serveis, etc. |
Files | Gestió de fitxers i directoris. |
Network | Configuració de dispositius de xarxa. |
Cloud | Gestió de recursos en plataformes de núvol com AWS, Azure, GCP, etc. |
Database | Gestió de bases de dades com MySQL, PostgreSQL, etc. |
Packaging | Instal·lació i gestió de paquets de programari. |
Commands | Execució de comandes en els nodes gestionats. |
Utilitzant Mòduls en Comandes Ad-hoc
Els mòduls es poden utilitzar directament en comandes ad-hoc per executar tasques ràpides. A continuació, es mostra un exemple d'ús del mòdul ping
per verificar la connectivitat amb els nodes gestionats:
Explicació:
all
: Indica que la comanda s'executarà en tots els nodes definits en l'inventari.-m ping
: Utilitza el mòdulping
per verificar la connectivitat.
Utilitzant Mòduls en Playbooks
Els mòduls també es poden utilitzar dins dels playbooks per definir tasques més complexes. A continuació, es mostra un exemple d'un playbook que utilitza el mòdul user
per crear un nou usuari:
--- - name: Crear un nou usuari hosts: all tasks: - name: Crear l'usuari 'johndoe' user: name: johndoe state: present groups: sudo
Explicació:
name
: Nom del playbook.hosts
: Defineix els nodes on s'executarà el playbook.tasks
: Llista de tasques a executar.user
: Mòdul utilitzat per gestionar usuaris.name
: Nom de l'usuari a crear.state
: Estat desitjat de l'usuari (present
per crear-lo).groups
: Grups als quals pertany l'usuari.
Exercicis Pràctics
Exercici 1: Utilitzar el Mòdul file
per Crear un Fitxer
Objectiu: Crear un fitxer anomenat example.txt
en el directori /tmp
en tots els nodes gestionats.
Solució:
Exercici 2: Utilitzar el Mòdul yum
per Instal·lar un Paquet
Objectiu: Instal·lar el paquet httpd
en tots els nodes gestionats que utilitzen el gestor de paquets yum
.
Solució:
Exercici 3: Crear un Playbook per Gestionar Serveis
Objectiu: Escriure un playbook que instal·li el servei nginx
i asseguri que estigui en execució.
Solució:
--- - name: Gestionar el servei nginx hosts: all tasks: - name: Instal·lar nginx yum: name: nginx state: present - name: Assegurar que nginx està en execució service: name: nginx state: started enabled: yes
Errors Comuns i Consells
-
Error: "Mòdul no trobat".
- Solució: Assegura't que el mòdul que estàs intentant utilitzar està instal·lat i disponible en el sistema.
-
Error: "Permisos insuficients".
- Solució: Alguns mòduls requereixen permisos d'administrador. Utilitza l'opció
--become
per executar la comanda amb privilegis elevats.
- Solució: Alguns mòduls requereixen permisos d'administrador. Utilitza l'opció
-
Consell: Utilitza l'opció
-vvv
per obtenir més informació de depuració si una comanda no funciona com s'esperava.
Conclusió
En aquesta secció, hem après què són els mòduls d'Ansible, com utilitzar-los en comandes ad-hoc i playbooks, i hem vist alguns exemples pràctics. Els mòduls són una eina poderosa que permet automatitzar una àmplia varietat de tasques en els nodes gestionats. En el següent mòdul, explorarem com escriure i estructurar playbooks per gestionar configuracions més complexes.
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