0Pricing
DevOps Bootcamp · Lezione

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: restarted

Un 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: restarted

Ricaricare 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: reloaded

Utilizzare 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: true

Mantenga 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

  1. Notificare un handler in caso di modifica
  2. Definire gli handler e i modelli di riavvio
  3. Quando vengono eseguiti gli handler e flush_handlers
  4. Listen: un trigger, molti handler
← Torna a DevOps Bootcamp