Introducció

Ansible és una eina de gestió de configuració i automatització de tasques que permet als administradors de sistemes gestionar grans quantitats de servidors de manera eficient. Utilitza un llenguatge de configuració senzill basat en YAML, anomenat Playbooks, per definir les tasques a realitzar.

Objectius del Mòdul

  • Comprendre què és Ansible i com funciona.
  • Aprendre a instal·lar i configurar Ansible.
  • Crear i executar Playbooks bàsics.
  • Gestionar inventaris de servidors.
  • Automatitzar tasques comunes amb Ansible.

Què és Ansible?

Ansible és una eina de codi obert que permet la gestió de configuracions, el desplegament d'aplicacions i l'automatització de tasques. A diferència d'altres eines de gestió de configuració, Ansible no requereix agents instal·lats en els nodes gestionats, ja que utilitza SSH per comunicar-se amb ells.

Característiques Clau

  • Sense agents: No cal instal·lar cap programari addicional en els nodes gestionats.
  • Basat en SSH: Utilitza SSH per comunicar-se amb els nodes.
  • Declaratiu: Els Playbooks descriuen l'estat desitjat del sistema.
  • Idempotent: Les tasques es poden executar múltiples vegades sense canviar l'estat del sistema si ja està en l'estat desitjat.

Instal·lació d'Ansible

Requisits Previs

  • Un sistema Linux amb accés a internet.
  • Privilegis de superusuari (root) o sudo.

Passos d'Instal·lació

  1. Actualitzar el sistema:

    sudo apt update
    sudo apt upgrade
    
  2. Instal·lar Ansible:

    sudo apt install ansible
    
  3. Verificar la instal·lació:

    ansible --version
    

Configuració Bàsica

Inventari

L'inventari és un fitxer que conté la llista de nodes que Ansible gestionarà. Per defecte, es troba a /etc/ansible/hosts.

Exemple d'Inventari

[webservers]
web1.example.com
web2.example.com

[dbservers]
db1.example.com
db2.example.com

Playbooks

Els Playbooks són fitxers YAML que defineixen les tasques a realitzar en els nodes.

Exemple de Playbook

---
- name: Instal·lar i configurar Apache
  hosts: webservers
  become: yes
  tasks:
    - name: Instal·lar Apache
      apt:
        name: apache2
        state: present

    - name: Iniciar el servei Apache
      service:
        name: apache2
        state: started
        enabled: yes

Executar Playbooks

Per executar un Playbook, utilitza la comanda ansible-playbook seguida del nom del fitxer del Playbook.

ansible-playbook -i /path/to/inventory /path/to/playbook.yml

Exercicis Pràctics

Exercici 1: Crear un Inventari

  1. Crea un fitxer d'inventari anomenat hosts amb el següent contingut:
    [webservers]
    web1.example.com
    web2.example.com
    
    [dbservers]
    db1.example.com
    db2.example.com
    

Exercici 2: Escriure un Playbook

  1. Escriu un Playbook anomenat install_apache.yml que faci el següent:
    • Instal·li el paquet apache2.
    • Iniciï el servei apache2 i asseguri que s'iniciï automàticament en arrencar el sistema.

Solucions

Solució de l'Exercici 1

[webservers]
web1.example.com
web2.example.com

[dbservers]
db1.example.com
db2.example.com

Solució de l'Exercici 2

---
- name: Instal·lar i configurar Apache
  hosts: webservers
  become: yes
  tasks:
    - name: Instal·lar Apache
      apt:
        name: apache2
        state: present

    - name: Iniciar el servei Apache
      service:
        name: apache2
        state: started
        enabled: yes

Errors Comuns i Consells

Errors Comuns

  • Error de sintaxi en YAML: Assegura't que la indentació és correcta.
  • Problemes de connexió SSH: Verifica que els nodes són accessibles via SSH i que les claus SSH estan configurades correctament.

Consells

  • Utilitza el mode de prova (--check) per veure què farà el Playbook sense fer canvis reals.
  • Utilitza variables per fer els Playbooks més flexibles i reutilitzables.

Conclusió

En aquest mòdul, hem après què és Ansible, com instal·lar-lo i configurar-lo, i com crear i executar Playbooks bàsics. Amb aquestes habilitats, pots començar a automatitzar tasques comunes en els teus servidors Linux, millorant l'eficiència i reduint errors humans. En els següents mòduls, explorarem temes més avançats d'Ansible i altres eines d'automatització.

Domini de Linux: De Principiant a Avançat

Mòdul 1: Introducció a Linux

Mòdul 2: Comandes Bàsiques de Linux

Mòdul 3: Habilitats Avançades de la Línia de Comandes

Mòdul 4: Scripting de Shell

Mòdul 5: Administració del Sistema

Mòdul 6: Xarxes i Seguretat

Mòdul 7: Temes Avançats

Mòdul 8: Projectes Pràctics

© Copyright 2024. Tots els drets reservats