dgt_devops06 – Introduzione ad Ansible

Titolo del modulo: dgt_devops06 – Introduzione ad Ansible

Descrizione del modulo:

“dgt_devops06 – Introduzione ad Ansible” è un’introduzione al configuration management con Ansible. Fornisce le conoscenze di base necessarie per capire come si gestisce e si automatizza un’infrastruttura IT, e la capacità pratica di guidare quell’automazione in linguaggio naturale.

In questo modulo non scriverete mai un playbook a mano. Una volta compresi inventory, moduli, idempotenza e ruoli, descriverete alla macchina lo stato che volete raggiungere sui vostri server (“Apache installato, in esecuzione e abilitato su tutti i web server”), le lascerete generare ed eseguire il playbook, e poi leggerete lo YAML riga per riga per verificare che faccia esattamente ciò che avete chiesto, né più né meno, e che una seconda esecuzione non cambi nulla.

Obiettivi di apprendimento principali:

  1. Comprendere il configuration management:
  2. Esplorare i concetti fondamentali del configuration management, inclusa la sua importanza per mantenere coerenza, affidabilità ed efficienza negli ambienti IT.
  3. Capire come Ansible si colloca nel panorama più ampio degli strumenti di configuration management.

  4. Principi di idempotenza:

  5. Conoscere il principio di idempotenza e perché è cruciale per l’automazione e la gestione delle configurazioni.
  6. Capire come Ansible garantisce che esecuzioni ripetute di un task producano lo stesso risultato, evitando modifiche indesiderate.

  7. Introduzione ad Ansible:

  8. Familiarizzare con l’architettura di Ansible, incluso il suo design agentless e l’uso di playbook basati su YAML.
  9. Conoscere moduli, inventory e ruoli di Ansible, e come contribuiscono a strategie di automazione efficaci.

  10. Playbook in linguaggio naturale:

  11. Ottenere il vostro primo playbook Ansible descrivendo alla macchina, in linguaggio semplice, un obiettivo reale, attraverso esercitazioni guidate.
  12. Esercitarsi a verificare che i task prodotti siano idempotenti e rispettino un buon design dei playbook, chiedendo correzioni quando non lo sono.

  13. Concetti avanzati:

  14. Studiare argomenti più avanzati come inventory dinamici, moduli personalizzati e integrazione di Ansible con le pipeline CI/CD.
  15. Esplorare come Ansible gestisce la configurazione su ambienti e piattaforme diversi, e come esprimere chiaramente queste differenze quando date istruzioni alla macchina.

Contenuti del modulo:

  • Modulo 1: Introduzione al configuration management
  • Panoramica dell’evoluzione e dei benefici del configuration management.
  • Casi di studio di implementazioni reali.

  • Modulo 2: L’idempotenza nell’automazione

  • Fondamenti teorici e implicazioni pratiche delle operazioni idempotenti.
  • Esempi di task non idempotenti e del loro impatto.

  • Modulo 3: Primi passi con Ansible

  • Chiedere alla macchina di installare e configurare l’ambiente Ansible, e verificare ciò che ha fatto.
  • Panoramica dei componenti chiave: playbook, moduli, ruoli e inventory.

  • Modulo 4: Il vostro primo playbook, descritto a parole

  • Guida passo passo per descrivere alla macchina un playbook di base e revisionare il risultato.
  • Esempio di ciò che la macchina produce, e che dovete saper leggere e verificare:

    “`yaml

    • name: Ensure Apache is installed and running
      hosts: webservers
      become: yes

    tasks:
    – name: Install Apache
    ansible.builtin.yum:
    name: httpd
    state: present

    - name: Start Apache service
      ansible.builtin.service:
        name: httpd
        state: started
        enabled: yes
    

    “`

  • Modulo 5: Best practice e tecniche avanzate

  • Strategie per ottimizzare le prestazioni dei playbook, e come richiederle con precisione.
  • Consigli per mantenere l’automazione scalabile e sicura, e per individuare scelte rischiose in ciò che la macchina propone.

Destinatari:

Questo modulo è rivolto a professionisti IT, amministratori di sistema, DevOps engineer e chiunque sia interessato ad automatizzare la gestione dell’infrastruttura con Ansible. Una conoscenza pregressa degli ambienti Linux è utile ma non obbligatoria: ciò che conta è comprendere i concetti abbastanza bene da dare istruzioni precise e valutarne i risultati.

Gli studenti possono caricare i propri esercizi nel Progetto Git dell’Academy DevOps & SRE. Per questo modulo, create una cartella con il vostro username come nome nella seguente sottocartella: https://github.com/Garanti-Del-Talento/gdt_academy