Junior
Cosa sono gli handler?
sobes.tech AI
Risposta dell'AI
Gli handler (gestori) nel contesto di DevOps, in particolare in strumenti come Ansible, sono compiti o blocchi di codice che vengono eseguiti solo sotto determinate condizioni — quando vengono esplicitamente "notificati" da un altro compito. Sono usati per riavviare servizi, riavviare server o eseguire altre azioni che devono avvenire solo dopo modifiche significative alla configurazione.
Caratteristiche principali:
- Eseguiti su notifica: Il gestore si avvia solo dopo che una o più attività lo hanno esplicitamente "notificato" (ad esempio, usando
notifyin Ansible). - Esecuzione unica: Anche se più attività notificano lo stesso gestore, questo verrà eseguito solo una volta alla fine del playbook o della sezione
include_tasks/import_tasksin cui è definito. Questo previene riavvii multipli dei servizi. - Approccio dichiarativo: Permettono di definire in modo dichiarativo quali azioni devono essere intraprese al cambiamento dello stato del sistema, senza preoccuparsi di eseguirle manualmente.
Esempio di notifica di un gestore in un task Ansible:
- name: Configurare il server web # Task che può modificare la configurazione
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: # Notifichiamo il gestore
- restart nginx
Definizione del gestore:
handlers:
- name: restart nginx # Nome del gestore, corrisponde al nome in notify
service:
name: nginx
state: restarted