task condizionali
This commit is contained in:
@@ -86,3 +86,57 @@ Per eseguire un playbook, è necessario utilizzare il comando `ansible-playbook`
|
||||
```bash
|
||||
ansible-playbook -i inventory playbook/my-playbook.yml -K --ask-vault-pass
|
||||
```
|
||||
|
||||
## Conditionals
|
||||
|
||||
Le istruzioni condizionali consentono di modificare il comportamento di un playbook in base a specifiche condizioni.
|
||||
|
||||
L'istruzione condizionale più semplice si applica a un singolo task, utilizzando la parola chiave `when`. In questo caso, il task verrà eseguito solo sui nodi in cui la condizione specificata è soddisfatta.
|
||||
|
||||
### Tipologie di condizioni
|
||||
|
||||
Le condizioni possono basarsi su diversi tipi di dati:
|
||||
|
||||
- `ansible_facts`: attributi specifici di ogni host, messi a disposizione da Ansible. Questi fanno riferimento a caratteristiche del nodo, come il tipo sistema operativo, le caratteristiche hardware e altre proprietà rilevanti. Sono utili per adattare il comportamento del playbook in base alle caratteristiche del nodo target
|
||||
- `registered variables`: variabili che contengono il risultato di task precedenti. È possibile condizionare in questo modo l’esecuzione di un task in base all’esito di un task già eseguito
|
||||
- `variabili` definite nel playbook o nell'inventory
|
||||
|
||||
Un semplice esempio di condizione `when`:
|
||||
|
||||
```yaml
|
||||
---
|
||||
- name: playbooks with conditions
|
||||
hosts: db
|
||||
become: true
|
||||
|
||||
tasks:
|
||||
- name: install postgres
|
||||
yum:
|
||||
name: postgresql
|
||||
state: latest
|
||||
when: ansible_distribution == 'Ubuntu'
|
||||
```
|
||||
|
||||
Un esempio di `registered variables`:
|
||||
|
||||
```yaml
|
||||
---
|
||||
- name: Install and Start HTTPD Service
|
||||
hosts: webservers
|
||||
become: true
|
||||
|
||||
tasks:
|
||||
- name: Install the httpd package
|
||||
yum:
|
||||
name: httpd
|
||||
state: present
|
||||
register: httpd_installation
|
||||
|
||||
- name: Start the httpd service
|
||||
service:
|
||||
name: httpd
|
||||
state: started
|
||||
when: httpd_installation.changed == true
|
||||
```
|
||||
|
||||
Questo task utilizza il modulo yum per installare il pacchetto httpd. Durante l'esecuzione, il risultato dell'installazione viene registrato nella variabile `httpd_installation`. Avvia infine il servizio httpd, ma solo se l'installazione del pacchetto è stata completata con successo.
|
||||
|
||||
Reference in New Issue
Block a user