In un playbook di Ansible, ci sono diverse modalità per dichiarare le variabili. Vediamo di seguito alcune di queste modalità:
Dichiarare variabili a livello di playbook
È possibile dichiarare le variabili direttamente a livello di playbook utilizzando la parola chiave vars
. Ad esempio:
- name: Esempio playbook
hosts: all
vars:
variable_name: valore
tasks:
- name: Task con variabili
debug:
msg: "La mia variabile: {{ variable_name }}"
Dichiarare variabili a livello di task
È anche possibile definire variabili all'interno di task specifici. Ad esempio:
- name: Esempio playbook
hosts: all
tasks:
- name: Task con variabili
debug:
msg: "La mia variabile: {{ variable_name }}"
vars:
variable_name: valore
Utilizzare variabili registrate
È possibile catturare l'output di un task in una variabile utilizzando la parola chiave register
. Ad esempio:
- name: Esempio playbook
hosts: all
tasks:
- name: Task con register
shell: echo "Ciao, mondo!"
register: output
- name: Visualizza la variabile registrata
debug:
var: output.stdout
Utilizzare variabili di ambiente
È possibile utilizzare le variabili di ambiente accedendo al dizionario ansible_env
di Ansible. Ad esempio:
- name: Esempio playbook
hosts: all
tasks:
- name: Visualizza la variabile di ambiente
debug:
var: ansible_env.VARIABLE_NAME
Utilizzare i facts di Ansible
Ansible raccoglie informazioni sui nodi gestiti, chiamate facts, che possono essere utilizzate come variabili nei playbook. Ad esempio:
- name: Esempio playbook
hosts: all
tasks:
- name: Visualizza il fatto ansible_os_family
debug:
var: ansible_facts['ansible_os_family']
Richiedere l'input dell'utente
È possibile utilizzare la parola chiave vars_prompt
per richiedere l'input dell'utente durante l'esecuzione del playbook. Ad esempio:
- name: Esempio playbook
hosts: all
vars_prompt:
- name: variable_name
prompt: "Inserisci un valore per la variabile:"
tasks:
- name: Visualizza la variabile di input
debug:
var: variable_name
Questi sono solo alcuni dei modi in cui è possibile dichiarare e utilizzare le variabili in un playbook di Ansible. La scelta del metodo dipenderà dalle esigenze specifiche del tuo playbook e del tuo ambiente di esecuzione.
Spero che queste informazioni ti siano state utili!