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.
|
||||
|
||||
## 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