Styr fejl: failed_when & ignore_errors
Definér, hvad der tæller som en fejl.
Styr fejl: failed_when & ignore_errors er en gratis Ansible Academy-lektion på CoddyKit. Dette er lektion 3 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.
Du bestemmer, hvad en fejl betyder
Ansible markerer en opgave som mislykket ved en returkode, der ikke er nul, men det kan du tilsidesætte. To nøgleord lader dig omdefinere fejl. 🎛️
ignore_errors fortsætter
Sæt ignore_errors til true, så bliver en mislykket opgave logget, men den stopper ikke afviklingen. Værten forbliver en del af afviklingen.
- name: Try optional cleanup
ansible.builtin.command: /opt/maybe-missing
ignore_errors: trueDen vises stadig som mislykket
ignore_errors skjuler ikke fejlen; udskriften viser stadig FAILED. Det forhindrer kun fejlen i at stoppe senere opgaver.
failed_when omdefinerer fejl
Brug failed_when til at angive din egen fejlbetingelse. Opgaven mislykkes kun, når dit udtryk er sandt.
- name: Check status
ansible.builtin.command: /opt/healthcheck
register: result
failed_when: result.rc > 1Kombinér med register
failed_when undersøger normalt et registreret resultat: dets rc, stdout eller stderr. Hent udskriften først, og vurder den derefter.
- ansible.builtin.command: grep ERROR app.log
register: out
failed_when: "'CRITICAL' in out.stdout"Denne opgave fejler aldrig
Sæt failed_when til false, så kan opgaven aldrig mislykkes, heller ikke ved en kode, der ikke er nul. Det er renere end ignore_errors til kendte støjende kommandoer.
- ansible.builtin.command: pkill myapp
failed_when: falseMatch flere betingelser
failed_when kan tage en liste med betingelser, der forbindes med and, eller et sammensat udtryk med or til mere avancerede regler.
failed_when:
- result.rc != 0
- "'skipped' not in result.stdout"changed_when er beslægtet
Det beslægtede changed_when styrer statussen som ændret i stedet for fejlstatus. Det er nyttigt, når en opgave med en kommando aldrig skal markeres som ændret.
- ansible.builtin.command: /opt/report
changed_when: falseignore over for failed_when
Brug failed_when, når du kan beskrive succes præcist; brug kun ignore_errors til trin, der virkelig er valgfrie og må udføres efter bedste evne.
Fungerer godt med rescue
I stedet for at ignorere fejl kan du lade en reel fejl udløse en rescue-blok. Så får du genoprettelse i stedet for et lydløst spring over. 🤝
Begge gælder pr. opgave
Både failed_when og ignore_errors hører til på én enkelt opgave, ikke i en hel afvikling. Hver opgave bestemmer selv, hvordan fejl håndteres.
Hurtigt tjek
Lad os sammenligne de to nøgleord.
Opsamling
failed_when definerer præcis, hvornår en opgave mislykkes, mens ignore_errors lader afviklingen fortsætte efter en fejl. Du bestemmer reglerne. ✅
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 “Styr fejl: failed_when & ignore_errors” gratis?
Ja — hele teksten til “Styr fejl: failed_when & ignore_errors” 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 “Styr fejl: failed_when & ignore_errors”?
Definér, hvad der tæller som en fejl. 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 3 af 4.
Hvor lang tid tager lektionen “Styr fejl: failed_when & ignore_errors”?
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
- Gruppér tasks med block
- Try / catch med rescue & always
- Styr fejl: failed_when & ignore_errors
- Brugerdefinerede assertions med modulet fail