2.3 KiB
2.3 KiB
Playbook
Un playbook Ansible è un file testuale, scritto in formato YAML, che definisce una sequenza di operazioni (task) da eseguire su uno o più nodi.
Un playbook può contenere uno o più Play. Ogni Play è composto da una serie di task, che a loro volta possono richiamare uno o più moduli.
Struttura di un playbook
Di seguito è riportato un esempio di playbook:
---
- name: install and start httpd
hosts: databases
tasks:
- name: install httpd
apt:
name: httpd
state: latest
become: true
- name: start httpd
service:
name: httpd
state: started
become: true
name: specifica il nome del play, che descrive l'azione da eseguirehosts: indica i nodi sui quali il play sarà eseguitotasks: contiene un elenco di operazioni da eseguire
In questo esempio:
- il playbook contiene un unico play
- il play ha il compito di installare e avviare il servizio httpd su un gruppo di host denominato databases
- sono definiti due task: il primo installa il pacchetto httpd tramite il modulo apt, mentre il secondo avvia il servizio httpd utilizzando il modulo service
- l’opzione
become: trueindica che i task devono essere eseguite con privilegi elevati, tipicamente utilizzando sudo
Un esempio di playbook con due play:
---
- name: install and start apache
hosts: webservers
tasks:
- name: install apache
apt:
name: apache2
state: latest
become: true
- name: start apache
service:
name: apache2
state: started
become: true
- name: install and start mysql
hosts: databases
tasks:
- name: install mysql
apt:
name: mysql-server
state: latest
become: true
- name: start mysql
service:
name: mysql
state: started
become: true
Esecuzione di un playbook
Per eseguire un playbook, è necessario utilizzare il comando ansible-playbook, specificando:
- l’inventory file, se custom, con l'opzione
-i - il percorso del playbook
- eventuali opzioni aggiuntive, come
-ask-vault-pass, che richiede la password per decifrare i file crittografati conansible-vault
ansible-playbook -i inventory playbook/my-playbook.yml -K --ask-vault-pass