Własne asercje za pomocą modułu fail
Zatrzymywanie play z jasnym komunikatem.
Własne asercje za pomocą modułu fail to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 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.
Zatrzymaj działanie z jasnym komunikatem
Czasami celowo chcesz zatrzymać play i podać pomocne uzasadnienie. Moduł fail robi dokładnie to. 🛑
Moduł fail
ansible.builtin.fail zatrzymuje bieżący host i wyświetla napisany przez Ciebie własny komunikat zamiast zagadkowego błędu.
- name: Refuse unsupported OS
ansible.builtin.fail:
msg: "This playbook supports Ubuntu only"Warunkowo uruchamiaj fail za pomocą when
Samodzielny fail zawsze zatrzymuje działanie, dlatego należy połączyć go z when. Play zakończy się niepowodzeniem tylko wtedy, gdy zostanie spełniony warunek ochronny.
- ansible.builtin.fail:
msg: "app_version is required"
when: app_version is not definedZatrzymuj szybko i wcześnie
Umieszczaj kontrole ochronne na początku play. Wczesne wykrycie nieprawidłowych danych wcześnie jest lepsze niż niepowodzenie w połowie wdrożenia.
Moduł assert
ansible.builtin.assert lepiej nadaje się do walidacji: przekazuje się mu warunki w that, a zadanie kończy się niepowodzeniem, jeśli którykolwiek z nich jest fałszywy.
- ansible.builtin.assert:
that:
- app_port is defined
- app_port | int > 1024Własne komunikaty assert
Dodaj fail_msg i success_msg do assert, aby uzyskać przyjazne dane wyjściowe w obu przypadkach. Za każdym razem otrzymasz jasną informację zwrotną.
- ansible.builtin.assert:
that: disk_free > 500
fail_msg: "Need at least 500MB free"
success_msg: "Disk space OK"assert sprawdza wiele warunków naraz
assert przyjmuje listę w that. Każdy warunek musi być prawdziwy; pierwszy fałszywy warunek kończy zadanie niepowodzeniem z podanym komunikatem.
fail a assert
Używaj fail do pojedynczego, celowego zatrzymania sterowanego logiką w when, a assert — do zwięzłej walidacji zestawu warunków.
Interpoluj wartości
W msg można umieścić zmienne, aby dodać kontekst. Pokaż nieprawidłową wartość, aby osoba obsługująca system dokładnie wiedziała, co należy poprawić.
- ansible.builtin.fail:
msg: "Port {{ app_port }} is out of range"Asercje jako dokumentacja
Dobre asercje pełnią również funkcję żywej dokumentacji: określają oczekiwania wobec playbooka i egzekwują je w jednym miejscu. 📝
Tryb quiet dla assert
Ustaw quiet na true w assert, aby pominąć dane wyjściowe dla poszczególnych warunków. Przydaje się, gdy interesują Państwa tylko niepowodzenia, a nie pomyślnie zakończone kontrole.
- ansible.builtin.assert:
that: app_port is defined
quiet: trueSzybki test
Wybierzmy właściwe narzędzie.
Podsumowanie
Moduł fail zatrzymuje play i wyświetla jasny komunikat, a assert przejrzyście sprawdza warunki. Zabezpieczaj playbooki z wyprzedzeniem. ✅
Często zadawane pytania
Czy lekcja „Własne asercje za pomocą modułu fail” jest bezpłatna?
Tak — pełny tekst „Własne asercje za pomocą modułu fail” 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 „Własne asercje za pomocą modułu fail”?
Zatrzymywanie play z jasnym komunikatem. Ć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 4 z 4.
Ile czasu zajmuje lekcja „Własne asercje za pomocą modułu fail”?
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
- Grupowanie zadań za pomocą block
- Try / catch z rescue i always
- Kontrolowanie błędów: failed_when i ignore_errors
- Własne asercje za pomocą modułu fail