loops
This commit is contained in:
@@ -140,3 +140,53 @@ Un esempio di `registered variables`:
|
|||||||
```
|
```
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
## Loops
|
||||||
|
|
||||||
|
I loop in Ansible consentono di ripetere un task più volte all'interno di un playbook, evitando la necessità di riscrivere blocchi di codice che eseguono la stessa operazione.
|
||||||
|
|
||||||
|
I tre tipi principali di loop sono:
|
||||||
|
|
||||||
|
- `Liste`
|
||||||
|
- `Liste di hash`
|
||||||
|
- `Dizionari`
|
||||||
|
|
||||||
|
### Liste
|
||||||
|
|
||||||
|
Per i loop di liste, si utilizza la parola chiave `loop`, seguita da una lista di stringhe. Il task verrà eseguito tante volte quante sono le stringhe nella lista, e `{{ item }}`, nel task, assumerà il valore dell'elemento iesimo.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
- name: playbook with loop
|
||||||
|
hosts: db
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: add users
|
||||||
|
user:
|
||||||
|
name: "{{item}}"
|
||||||
|
loop:
|
||||||
|
- userOne
|
||||||
|
- userTwo
|
||||||
|
```
|
||||||
|
|
||||||
|
### Liste di hash
|
||||||
|
|
||||||
|
Per i loop di liste di hash, si utilizza la medesima parola chiave loop, ma la lista contiene elementi `chiavi: valore`. In questo caso, si può accedere ai valori usando la sintassi `{{ item.key }}`.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
- name: Playbook con loop su lista di hash
|
||||||
|
hosts: db
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: add users
|
||||||
|
user:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
uid: "{{ item.uid }}"
|
||||||
|
shell: "{{ item.shell }}"
|
||||||
|
loop:
|
||||||
|
- { name: 'userOne', uid: 1001, shell: '/bin/bash' }
|
||||||
|
- { name: 'userTwo', uid: 1002, shell: '/bin/zsh' }
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user