Ansible Academy · leksjon

Listen: Én utløser, mange handlere

Send én varsling videre til flere handlere.

Leksjon 4 av 413 trinn

Listen: Én utløser, mange handlere er en gratis leksjon i Ansible Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Ansible Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Ansible Academy inneholder totalt 4 leksjoner.

Én hendelse, mange reaksjoner

Noen ganger bør én endring utløse flere handlers samtidig. Nøkkelordet listen lar mange handlers abonnere på ett enkelt emne.

Varsle et emne, ikke et navn

Med listen peker en tasks notify på et logisk hendelsesnavn i stedet for tittelen på én bestemt handler.

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

Handlers abonnerer med listen

Hver handler legger til en listen-linje som angir det samme emnet. Alle handlers som lytter på emnet, utløses når det varsles.

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

Mange handlers, ett emne

Gi flere handlers samme listen-verdi, så utløser ett enkelt notify dem alle. Dette er utmerket for grupperte omstarter.

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

Koble tasks fra handlers

Den store fordelen er frikobling: Tasks refererer til et emne, og du kan legge til eller fjerne handlers uten å endre taskene som varsler dem.

Navn er fortsatt valgfritt, men nyttig

En handler med listen kan fortsatt ha et navn. Det gjør resultatet lettere å lese og lar andre tasks også varsle den direkte.

En handler kan lytte på flere emner

Gi listen en liste, så reagerer én handler på flere forskjellige emner. Den reagerer på den hendelsen som blir varslet.

    listen:
      - restart web stack
      - reload tls

Fortsatt idempotent

Emnebaserte varsler følger de samme reglene: Handlers utløses bare ved changed, og hver handler kjøres fortsatt høyst én gang per play.

Rekkefølgen er fortsatt definisjonsrekkefølgen

Når et emne vekker flere handlers, kjører de i den rekkefølgen de er definert i handlerlisten, akkurat som vanlige handlers.

Vanlig i delte roller

Gjenbrukbare roller bruker listen slik at brukerne varsler et stabilt emne, mens rollen fritt kan endre sitt interne utvalg av handlers.

notify kontra listen

notify er signalet fra en task, mens listen er abonnementet på en handler. Sammen gjør de én hendelse til mange handlinger. 🔔

Hurtigsjekk

Du vil at én notify skal starte tre tjenester samtidig. Hva gjør at flere handlere kan reagere på ett topic?

Oppsummering

Med listen varsler en oppgave et topic, og alle abonnerte handlere utløses. Dette kobler oppgaver fra handlerne og skalerer på en ryddig måte. 🎯

Gratis å komme i gang

Lær deg YAML med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Listen: Én utløser, mange handlere» gratis?

Ja – hele teksten i «Listen: Én utløser, mange handlere» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Ansible Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Ansible Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Listen: Én utløser, mange handlere»?

Send én varsling videre til flere handlere. Du øver på Ansible Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Ansible Academy?

Ingen tidligere erfaring er nødvendig. Ansible Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Listen: Én utløser, mange handlere»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Ansible Academy-leksjonen?

Ja. Alle Ansible Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Varsle en handler ved endring
  2. Definere handlere og mønstre for omstart
  3. Når handlere kjører og flush_handlers
  4. Listen: Én utløser, mange handlere
← Tilbake til Ansible Academy