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:

ansible all -m ping

Explicació:

  • all: Indica que la comanda s'executarà en tots els nodes definits en l'inventari.
  • -m ping: Utilitza el mòdul ping 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ó:

ansible all -m file -a "path=/tmp/example.txt state=touch"

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ó:

ansible all -m yum -a "name=httpd state=present"

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.
  • 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.

© Copyright 2024. Tots els drets reservats