dgt_devops06 – Ansible – Playbook, ruoli e moduli

Titolo del modulo: dgt_devops06 – Ansible: playbook, ruoli e moduli


Panoramica:
Il modulo “dgt_devops06 – Ansible: playbook, ruoli e moduli” tratta il configuration management con Ansible. Il modulo approfondisce i concetti fondamentali del configuration management e dell’idempotenza, per poi trasformarli in pratica: automatizzerai le attività infrastrutturali istruendo la macchina in linguaggio naturale e verificando tutto ciò che produce.

Cosa imparerai:

  1. Introduzione al configuration management:
  2. Comprendere l’importanza del configuration management per mantenere la coerenza dei sistemi.
  3. Esplorare principi chiave come il versionamento, l’automazione e la ripetibilità.

  4. L’idempotenza in Ansible:

  5. Afferrare il concetto di idempotenza e capire perché è cruciale per un’automazione affidabile.
  6. Scoprire come Ansible garantisce che esecuzioni ripetute portino allo stesso stato del sistema senza modifiche indesiderate.

  7. Approfondimento sui playbook:

  8. Capire come i playbook vengono strutturati, organizzati ed eseguiti, così da poter descrivere alla macchina lo stato desiderato e valutare il playbook che scrive.
  9. Esplorare l’ordine di esecuzione dei task, le istruzioni condizionali e la gestione degli errori nei playbook.

  10. I ruoli:

  11. Conoscere i ruoli come strumento per organizzare task, handler, file, template e variabili.
  12. Comprendere le dipendenze tra ruoli e come i ruoli vengono condivisi e riutilizzati in progetti diversi.

  13. Esplorare i moduli Ansible:

  14. Prendere confidenza con i moduli integrati e capire quando ciascuno è la scelta giusta per un’attività di automazione.
  15. Capire quando un modulo personalizzato è giustificato e come specificarlo con tale precisione che la macchina possa scriverlo e tu possa revisionarlo.

  16. Pratica in linguaggio naturale:

  17. Applicare i concetti in laboratori in cui descrivi la configurazione obiettivo in linguaggio semplice e la macchina scrive ed esegue il codice Ansible.
  18. Revisionare i playbook, i ruoli e i moduli che produce: verificare che siano idempotenti, ben strutturati e sicuri, rieseguirli per dimostrare che nulla cambia e correggere la macchina ogni volta che devia.

Ad esempio, potresti chiedere alla macchina: “Installa nginx sul gruppo webservers, pubblica il nostro index.html con owner e permessi corretti e riavvia nginx solo se qualcosa è cambiato.” Il playbook qui sotto è il tipo di risultato che restituisce. Il tuo compito è leggerlo e confermare che usi i moduli giusti, che l’handler venga attivato solo in caso di modifica e che i permessi del file siano quelli che hai chiesto.

Esempio di playbook Ansible:

“`yaml

  • name: Configure Web Server
    hosts: webservers
    become: yes

tasks:
– name: Install nginx
apt:
name: nginx
state: present
notify:
– restart nginx

- name: Copy index.html to web server root
  copy:
    src: /path/to/local/index.html
    dest: /var/www/html/index.html
    owner: www-data
    group: www-data
    mode: 0644

handlers:
– name: restart nginx
service:
name: nginx
state: restarted
“`

A chi è rivolto?
Il modulo è rivolto a system administrator, DevOps engineer e professionisti IT che si occupano di automazione dell’infrastruttura con Ansible. Può servire anche come introduzione strutturata ai concetti del configuration management.

Risultati del modulo:
Al termine del modulo sarai in grado di progettare soluzioni efficaci di configuration management con Ansible e di farle implementare tramite istruzioni precise in linguaggio naturale. Saprai verificare che i playbook prodotti dalla macchina siano idempotenti e riutilizzabili, individuare cosa non va quando non lo sono e guidarla verso un’automazione coerente ed efficiente su tutta la tua infrastruttura.

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