Intensiv DevOps-uddannelse · Lektion

Definition af handlers & genstartsmønstre

Skriv genanvendelige handlers til genstart af services.

Lektion 2 af 413 trin

Definition af handlers & genstartsmønstre er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvor handlers findes

Handlers placeres i deres egen handlers-sektion i et play, adskilt fra dine almindelige opgaver. Det holder reaktive handlinger tydeligt samlet.

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

En handler er en opgave

En handler bruger præcis samme syntaks som en opgave: et name og et modulopkald. Den eneste forskel er, at den venter på en notifikation.

Navnet er kontrakten

Handlerens name er den streng, andre opgaver henviser til i deres notify. Behandl det som en stabil og nøjagtig etiket, du kan genbruge.

Genstart med service

En klassisk genstarthandler bruger service-modulet med state sat til restarted. Det stopper og starter enheden i ét trin.

- name: Restart nginx
  ansible.builtin.service:
    name: nginx
    state: restarted

Genindlæsning eller genstart

Foretræk reloaded, når en tjeneste understøtter det. En genindlæsning læser konfigurationen igen uden at afbryde forbindelser, i modsætning til en fuld genstart.

- name: Reload nginx
  ansible.builtin.service:
    name: nginx
    state: reloaded

Brug systemd direkte

systemd-modulet giver mere detaljeret kontrol på systemd-værter, herunder daemon_reload, efter at du har ændret en enhedsfil.

- name: Restart app
  ansible.builtin.systemd:
    name: app
    state: restarted
    daemon_reload: true

Hold handlers generiske

Skriv én genanvendelig Genstart nginx-handler, og send notify til den fra mange opgaver. Undgå at kopiere den samme genstartslogik overalt.

Handlers køres i definitionsrækkefølge

Når flere handlers er sat i kø, køres de i den rækkefølge, de er defineret i, ikke i den rækkefølge, de fik notifikationer. Planlæg denne rækkefølge.

Rækkefølgen er vigtig for afhængigheder

Hvis en genindlæsning skal ske før en genstart, skal du definere dem i den rækkefølge i handlerlisten, så køen afvikles korrekt.

Handlers i roller

I en rolle placeres handlers i handlers/main.yml. Opgaver i rollen sender notify til dem ved navn, præcis som i en almindelig playbook.

Navngivning for tydelighed

Brug handlingsorienterede navne som Genstart nginx eller Genindlæs sshd. Tydelige navne gør outputtet let at læse og notify-linjerne tydelige.

Hurtig kontrol

Du har ændret en konfiguration og vil have den kørende tjeneste til at indlæse den uden at afbryde forbindelser. Hvilken state er bedst?

Opsamling

Du kan nu definere handlers i sektionen handlers, vælge mellem genstart og genindlæsning og stole på kørsel i definitionsrækkefølge. 🎯

Gratis at komme i gang

Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
142
Lektioner
568

Ofte stillede spørgsmål

Er lektionen “Definition af handlers & genstartsmønstre” gratis?

Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Definition af handlers & genstartsmønstre”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Definition af handlers & genstartsmønstre”?

Skriv genanvendelige handlers til genstart af services. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?

Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Definition af handlers & genstartsmønstre”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?

Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Giv en handler besked ved ændringer
  2. Definition af handlers & genstartsmønstre
  3. Hvornår handlers kører & flush_handlers
  4. Listen: Én trigger, mange handlers
← Tilbage til Intensiv DevOps-uddannelse