Ansible Academy · Lektion

Styr fejl: failed_when & ignore_errors

Definér, hvad der tæller som en fejl.

Lektion 3 af 413 trin

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: true

Den 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 > 1

Kombiné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: false

Match 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: false

ignore 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. ✅

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 “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

  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