0Pricing
DevOps Bootcamp · Lekcja

Kontrolowanie błędów: failed_when i ignore_errors

Definiowanie, co oznacza niepowodzenie.

Kontrolowanie błędów: failed_when i ignore_errors to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

To Państwo decydują, co oznacza niepowodzenie

Ansible uznaje zadanie za nieudane, gdy zwróci ono niezerowy kod wyjścia, ale można to zmienić. Dwa słowa kluczowe pozwalają na nowo zdefiniować niepowodzenie. 🎛️

ignore_errors pozwala działać dalej

Ustawienie ignore_errors na true powoduje, że nieudane zadanie zostaje odnotowane, ale nie przerywa play. Host nadal uczestniczy w play.

- name: Try optional cleanup
  ansible.builtin.command: /opt/maybe-missing
  ignore_errors: true

Nadal jest oznaczone jako nieudane

ignore_errors nie ukrywa niepowodzenia — w danych wyjściowych nadal widnieje FAILED. Zapobiega jedynie zatrzymaniu kolejnych zadań przez niepowodzenie.

failed_when redefiniuje niepowodzenie

Użyj failed_when, aby określić własny warunek niepowodzenia. Zadanie zakończy się niepowodzeniem tylko wtedy, gdy wyrażenie będzie miało wartość true.

- name: Check status
  ansible.builtin.command: /opt/healthcheck
  register: result
  failed_when: result.rc > 1

Połącz z register

failed_when zwykle sprawdza zarejestrowany wynik: jego rc, stdout lub stderr. Najpierw przechwyć dane wyjściowe, a następnie je oceń.

- ansible.builtin.command: grep ERROR app.log
  register: out
  failed_when: "'CRITICAL' in out.stdout"

To zadanie nigdy nie kończy się niepowodzeniem

Ustaw failed_when na false, a zadanie nigdy nie zakończy się niepowodzeniem, nawet przy niezerowym kodzie. W przypadku znanych, hałaśliwych poleceń jest to rozwiązanie bardziej przejrzyste niż ignore_errors.

- ansible.builtin.command: pkill myapp
  failed_when: false

Dopasuj wiele warunków

failed_when może przyjmować listę warunków połączonych za pomocą and albo złożone wyrażenie zawierające or, co pozwala tworzyć bardziej rozbudowane reguły.

failed_when:
  - result.rc != 0
  - "'skipped' not in result.stdout"

changed_when jest spokrewnione

Powiązane changed_when steruje statusem changed zamiast niepowodzeniem. Przydaje się na przykład do oznaczenia, że zadanie wykonujące polecenie nigdy nie wprowadza zmian.

- ansible.builtin.command: /opt/report
  changed_when: false

ignore a failed_when

Sięgaj po failed_when, gdy można precyzyjnie opisać powodzenie; ignore_errors stosuj tylko w przypadku rzeczywiście opcjonalnych kroków wykonywanych w trybie best effort.

Dobrze współpracuje z rescue

Zamiast ignorować błędy pozwól, aby prawdziwe niepowodzenie uruchomiło blok rescue. Otrzymasz mechanizm odzyskiwania zamiast cichego pominięcia. 🤝

Oba dotyczą pojedynczego zadania

Zarówno failed_when, jak i ignore_errors dotyczą pojedynczego zadania, a nie całego play. Każde zadanie samodzielnie określa sposób obsługi własnego niepowodzenia.

Szybki test

Porównajmy oba słowa kluczowe.

Podsumowanie

failed_when dokładnie określa, kiedy zadanie kończy się niepowodzeniem, natomiast ignore_errors pozwala kontynuować play mimo niepowodzenia. To Państwo definiują reguły. ✅

Często zadawane pytania

Czy lekcja „Kontrolowanie błędów: failed_when i ignore_errors” jest bezpłatna?

Tak — pełny tekst „Kontrolowanie błędów: failed_when i ignore_errors” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Kontrolowanie błędów: failed_when i ignore_errors”?

Definiowanie, co oznacza niepowodzenie. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Kontrolowanie błędów: failed_when i ignore_errors”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Grupowanie zadań za pomocą block
  2. Try / catch z rescue i always
  3. Kontrolowanie błędów: failed_when i ignore_errors
  4. Własne asercje za pomocą modułu fail
← Powrót do DevOps Bootcamp