This commit is contained in:
dado
2025-08-31 13:26:37 +02:00
parent bc6753b051
commit 58ac07c5ce

View File

@@ -251,3 +251,32 @@ Un esempio di **gestione di errori**:
``` ```
In questo caso, il task nella sezione `rescue` viene eseguito solo se il comando /bin/false fallisce, mentre il task nella sezione `always` viene eseguito in ogni circostanza. In questo caso, il task nella sezione `rescue` viene eseguito solo se il comando /bin/false fallisce, mentre il task nella sezione `always` viene eseguito in ogni circostanza.
## Handlers
Gli `handler` in Ansible consentono l'esecuzione condizionale di specifiche operazioni, attivate solo quando un task determina modifiche su un nodo target.
```yaml
---
- name: playbook with handlers
hosts: db
become: true
tasks:
- name: install httpd
yum:
name: httpd
state: present
notify:
- Start httpd
handlers:
- name: Start httpd
service:
name: httpd
state: started
```
La parola chiave `notify` serve a richiamare lhandler specificato. Durante la prima esecuzione, una volta installato il software httpd, lhandler verrà attivato e avvierà il servizio. Nelle esecuzioni successive, qualora il pacchetto sia già presente e non subisca modifiche, il task non verrà eseguito e, di conseguenza, neppure lhandler associato verrà richiamato.
Per impostazione predefinita, gli handlers vengono eseguiti solo dopo che tutti i task del playbook sono stati completati. Questo significa che, anche se più task notificano lo stesso handler, questultimo verrà eseguito una sola volta.