Ansible Academy · Lektion

Try / catch med rescue & always

Håndtér fejl på en elegant måde.

Lektion 2 af 413 trin

Try / catch med rescue & always er en gratis Ansible Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Ansible Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Ansible Academy-kurset indeholder 4 lektioner i alt.

Blocks får et sikkerhedsnet

Kombinér en block med rescue og always for at få try, catch og finally til dine opgaver. Fejl kan derefter håndteres. 🛟

rescue-sektionen

Hvis en opgave i blocken mislykkes, går Ansible til rescue og kører disse opgaver i stedet, ligesom en catch-klausul.

- block:
    - ansible.builtin.command: /opt/risky-step
  rescue:
    - ansible.builtin.debug:
        msg: "Step failed, recovering"

always kører uanset hvad

Sektionen always køres, uanset om blocken lykkedes eller mislykkedes, hvilket er perfekt til oprydning som at fjerne en midlertidig fil.

- block:
    - ansible.builtin.command: /opt/deploy
  always:
    - ansible.builtin.file:
        path: /tmp/lock
        state: absent

Alle tre sammen

Brug block, rescue og always som én struktur: Prøv arbejdet, fang fejl, og afslut derefter altid korrekt.

- block:
    - ansible.builtin.command: /opt/deploy
  rescue:
    - ansible.builtin.debug:
        msg: "Rolling back"
  always:
    - ansible.builtin.debug:
        msg: "Done either way"

rescue nulstiller fejlen

Hvis rescue gennemføres uden fejl, er værten ikke længere markeret som mislykket. Playet fortsætter, som om blocken var lykkedes.

Kørselsrækkefølge

Opgaverne i blocken køres først. Ved en fejl springes resten af blocken over, og rescue starter. always køres sidst i alle tilfælde.

Når rescue selv mislykkes

Hvis en opgave i rescue også mislykkes, markeres værten som mislykket, men always køres stadig, før playet stopper for denne vært.

Undersøg fejlen

I rescue kan du læse ansible_failed_task og ansible_failed_result for at se, hvilken opgave der gik galt, og hvorfor.

- rescue:
    - ansible.builtin.debug:
        msg: "Failed task was {{ ansible_failed_task.name }}"

En praktisk anvendelse: tilbagerulning

Det klassiske mønster er at placere udrulningen i en block, fortryde ændringen i rescue og genstarte eller låse op i always. Ren gendannelse ved hver kørsel.

Det handler ikke kun om at skjule fejl

rescue bruges til elegant gendannelse, ikke til at tie fejl ihjel. Log fejlen, og ret tilstanden. Lad som om intet gik galt. ⚠️

Uden rescue stopper det hårdt

Uden en rescue-sektion opfører en block med fejl sig som enhver anden opgave med fejl: Den stopper straks playet for denne vært.

Hurtigt tjek

Lad os bekræfte, hvordan always fungerer.

Opsamling

rescue fanger fejl i blocks og gendanner værten, mens always altid køres til oprydning. Try, catch og finally i Ansible. ✅

Gratis at komme i gang

Lær YAML 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
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Try / catch med rescue & always” gratis?

Ja — hele teksten til “Try / catch med rescue & always” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Ansible Academy-kurset, skal du opgradere til CoddyKit PRO. Ansible Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Try / catch med rescue & always”?

Håndtér fejl på en elegant måde. Du øver dig i Ansible Academy 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å Ansible Academy?

Der kræves ingen tidligere erfaring. Ansible Academy 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 “Try / catch med rescue & always”?

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

Ja. Alle Ansible Academy-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. Gruppér tasks med block
  2. Try / catch med rescue & always
  3. Styr fejl: failed_when & ignore_errors
  4. Brugerdefinerede assertions med modulet fail
← Tilbage til Ansible Academy