This commit is contained in:
dado
2025-08-29 21:34:59 +02:00
parent 68aabee5bb
commit 64af0cf19f

View File

@@ -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' }
```