Ansible Academy · Lezione

Listen: un trigger, molti handler

Propaghi una singola notifica

Lezione 4 di 413 passaggi

Listen: un trigger, molti handler è una lezione Ansible Academy gratuita su CoddyKit. Questa è la lezione 4 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 Ansible Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ansible Academy include 4 lezioni in totale.

Un evento, molte reazioni

A volte una singola modifica dovrebbe attivare contemporaneamente diversi handler. La parola chiave listen consente a molti handler di sottoscrivere un unico topic.

Notificare un topic, non un nome

Con listen, il notify di un task fa riferimento al nome di un evento logico invece che al titolo di uno specifico handler.

- name: Update certs
  ansible.builtin.copy:
    src: site.pem
    dest: /etc/ssl/site.pem
  notify: restart web stack

Gli handler si sottoscrivono con listen

Ogni handler aggiunge una riga listen con lo stesso nome del topic. Ogni handler in ascolto su quel topic viene attivato quando riceve la notifica.

handlers:
  - name: Restart nginx
    ansible.builtin.service:
      name: nginx
      state: restarted
    listen: restart web stack

Molti handler, un topic

Assegni a diversi handler lo stesso valore di listen e una singola notifica verrà inoltrata a tutti. È ideale per i riavvii raggruppati.

  - name: Restart php-fpm
    ansible.builtin.service:
      name: php-fpm
      state: restarted
    listen: restart web stack

Disaccoppiare task e handler

Il vantaggio principale è il disaccoppiamento: i task fanno riferimento a un topic e Lei può aggiungere o rimuovere handler senza modificare i task che inviano le notifiche.

Il nome resta facoltativo, ma utile

Un handler con listen può avere comunque un name, che mantiene leggibile l'output e consente anche ad altri task di notificarlo direttamente.

Un handler può ascoltare più topic

Assegni a listen una lista e un singolo handler risponderà a diversi topic. Reagirà all'evento che riceverà la notifica.

    listen:
      - restart web stack
      - reload tls

Resta idempotente

Le notifiche basate sui topic seguono le stesse regole: gli handler vengono attivati solo su changed e ciascuno viene comunque eseguito al massimo una volta per play.

L'ordine resta quello di definizione

Quando un topic attiva diversi handler, questi vengono eseguiti nell'ordine in cui sono definiti nell'elenco degli handler, proprio come gli handler normali.

Comune nei ruoli condivisi

I ruoli riutilizzabili usano listen affinché chi li utilizza notifichi un topic stabile, mentre il ruolo può modificare liberamente l'insieme dei propri handler interni.

notify e listen

notify è il segnale inviato da un task; listen è la sottoscrizione di un handler. Insieme trasformano un evento in molte azioni. 🔔

Controllo rapido

Desidera che un solo notify riavvii tre servizi contemporaneamente. Che cosa consente a più handler di rispondere a un unico topic?

Riepilogo

Con listen, un task invia una notifica a un topic e ogni handler sottoscritto viene eseguito. Questo disaccoppia i task dagli handler e consente di scalare in modo ordinato. 🎯

Gratis per iniziare

Impara YAML con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Listen: un trigger, molti handler» è gratuita?

Sì — il testo completo di «Listen: un trigger, molti handler» è 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 Ansible Academy, passa a CoddyKit PRO. Il corso Ansible Academy include 4 lezioni in totale.

Cosa imparerò in «Listen: un trigger, molti handler»?

Propaghi una singola notifica Eserciti Ansible Academy 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 Ansible Academy?

Non è richiesta alcuna esperienza precedente. Ansible Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Listen: un trigger, molti handler»?

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 Ansible Academy?

Sì. Ogni lezione Ansible Academy 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 Ansible Academy