I ruoli di Ansible offrono un modo standardizzato per pacchettizzare e modularizzare task, handler, variabili e template per un riutilizzo pulito.
🔗 Related: Cheat Sheet base di Ansible · Guida rapida di Ansible · Esempi di Ansible Playbook
Struttura standard delle directory di un ruolo
Genera lo scaffolding di un ruolo con ansible-galaxy init role_name:
roles/
common/
tasks/
main.yml # Punto di ingresso principale per i task eseguiti dal ruolo
handlers/
main.yml # Handler attivati tramite notify
templates/ # Template Jinja2 (.j2) referenziati dal modulo template
files/ # File statici e script trasferiti tramite il modulo copy
vars/
main.yml # Variabili ad alta precedenza specifiche per questo ruolo
defaults/
main.yml # Variabili predefinite a bassa precedenza (sovrascrivibili)
meta/
main.yml # Dipendenze del ruolo e metadati dell'autore
Utilizzo dei ruoli nei playbook
---
- name: Apply common and webserver roles
hosts: webservers
become: true
roles:
- role: common
- role: nginx
vars:
nginx_port: 8080
Precedenza delle variabili nei ruoli
Le variabili definite in defaults/main.yml hanno la precedenza più bassa in Ansible, rendendole valori predefiniti sicuri e facilmente sovrascrivibili.
Le variabili in vars/main.yml hanno un'alta precedenza e sono riservate alla logica interna del ruolo.