Definire gli handler e i modelli di riavvio
Scriva handler riutilizzabili per riavviare i servizi
Definire gli handler e i modelli di riavvio è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.
Dove si trovano gli handler
Gli handler si inseriscono in una sezione handlers dedicata del play, separata dai task normali. In questo modo le azioni reattive restano chiaramente raggruppate.
tasks:
- name: Deploy config
ansible.builtin.template:
src: app.conf.j2
dest: /etc/app.conf
notify: Restart app
handlers:
- name: Restart app
ansible.builtin.service:
name: app
state: restartedUn handler è un task
Un handler utilizza esattamente la stessa sintassi di un task: un name e una chiamata a un modulo. L'unica differenza è che attende di ricevere una notifica.
Il nome è il contratto
Il name dell'handler è la stringa a cui fanno riferimento gli altri task nel loro notify. Lo consideri un'etichetta stabile ed esatta da riutilizzare.
Riavviare con service
Un classico handler di riavvio utilizza il modulo service con lo stato impostato su restarted. Arresta e avvia l'unità in un solo passaggio.
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restartedRicaricare o riavviare
Preferisca reloaded quando il servizio lo supporta. Un reload rilegge la configurazione senza interrompere le connessioni, a differenza di un riavvio completo.
- name: Reload nginx
ansible.builtin.service:
name: nginx
state: reloadedUtilizzare direttamente systemd
Il modulo systemd offre un controllo più preciso sugli host systemd, incluso daemon_reload dopo la modifica di un file di unità.
- name: Restart app
ansible.builtin.systemd:
name: app
state: restarted
daemon_reload: trueMantenga generici gli handler
Scriva un unico handler riutilizzabile Riavvia nginx e lo notifichi da molti task. Eviti di copiare la stessa logica di riavvio ovunque.
Gli handler vengono eseguiti nell'ordine di definizione
Quando vengono accodati diversi handler, vengono eseguiti nell'ordine in cui sono definiti, non nell'ordine in cui hanno ricevuto la notifica. Pianifichi questa sequenza.
L'ordine è importante per le dipendenze
Se un reload deve avvenire prima di un riavvio, li definisca in quell'ordine nell'elenco degli handler, così la coda verrà elaborata correttamente.
Gli handler nei ruoli
In un ruolo, gli handler si trovano in handlers/main.yml. I task del ruolo li notificano per nome, esattamente come in un normale playbook.
Nomi per maggiore chiarezza
Utilizzi nomi formulati come azioni, ad esempio Riavvia nginx o Ricarica sshd. I nomi chiari rendono leggibile l'output e rendono evidenti le righe notify.
Controllo rapido
Ha modificato una configurazione e desidera che il servizio in esecuzione la rilegga senza interrompere le connessioni. Quale stato è più adatto?
Riepilogo
Ora sa definire gli handler nella sezione handlers, scegliere tra riavvio e reload e affidarsi all'esecuzione nell'ordine di definizione. 🎯
Domande Frequenti
La lezione «Definire gli handler e i modelli di riavvio» è gratuita?
Sì — il testo completo di «Definire gli handler e i modelli di riavvio» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.
Cosa imparerò in «Definire gli handler e i modelli di riavvio»?
Scriva handler riutilizzabili per riavviare i servizi Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare DevOps Bootcamp?
Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Definire gli handler e i modelli di riavvio»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?
Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Notificare un handler in caso di modifica
- Definire gli handler e i modelli di riavvio
- Quando vengono eseguiti gli handler e flush_handlers
- Listen: un trigger, molti handler