Capitolo 7 – Ruoli, Variabili e Gestione Segreti

Dopo aver imparato i playbook base, è fondamentale organizzare i progetti in modo modulare e sicuro.


7.1 Introduzione ai Ruoli

I ruoli permettono di raggruppare tasks, file, template e variabili in moduli riutilizzabili.

Struttura tipica di un ruolo nginx:

roles/
└── nginx/
    ├── tasks/
    │   └── main.yml
    ├── templates/
    │   └── nginx.conf.j2
    ├── files/
    ├── vars/
    │   └── main.yml
    ├── defaults/
    │   └── main.yml
    └── handlers/
        └── main.yml

7.2 Creazione di un Ruolo

Esempio:

ansible-galaxy init nginx

Questo comando genera automaticamente la struttura del ruolo.


7.3 Utilizzo dei Ruoli in un Playbook

Esempio playbooks/web.yml:

- name: Configurazione Web Server
  hosts: web
  become: true
  roles:
    - nginx

Il ruolo viene eseguito con tutte le sue tasks, handlers, template e variabili.


7.4 Variabili

Le variabili possono essere definite in diversi livelli di precedenza:

  1. Variabili host specifiche (host_vars/host1.yml)
  2. Variabili di gruppo (group_vars/web.yml)
  3. Variabili definite nel ruolo (vars/main.yml)
  4. Variabili di default del ruolo (defaults/main.yml)
  5. Variabili inline nel playbook

Esempio group_vars/web.yml:

http_port: 80
max_clients: 200

7.5 Gestione Segreti con Ansible Vault

Ansible Vault permette di cifrare variabili sensibili come password o chiavi.

Creazione file criptato:

ansible-vault create group_vars/web/secrets.yml

Esempio contenuto:

db_password: "SuperSegreta123"

Esecuzione playbook con Vault:

ansible-playbook playbooks/web.yml --ask-vault-pass

Modifica file criptato:

ansible-vault edit group_vars/web/secrets.yml

7.6 Best Practice Ruoli e Variabili


7.7 Conclusione

I ruoli, le variabili e la gestione dei segreti sono elementi fondamentali per strutturare progetti Ansible professionali.

Permettono:

Nei prossimi capitoli si può approfondire:


Revision #1
Created 2026-02-26 14:04:14 UTC by Pe
Updated 2026-02-26 14:05:10 UTC by Pe