handlers
This commit is contained in:
@@ -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.
|
||||
|
||||
## 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 l’handler specificato. Durante la prima esecuzione, una volta installato il software httpd, l’handler 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 l’handler 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, quest’ultimo verrà eseguito una sola volta.
|
||||
|
||||
Reference in New Issue
Block a user