0Pricing
DevOps Bootcamp · Lekcja

Zwracanie JSON i respektowanie changed

Przestrzeganie protokołu wyników modułu.

Zwracanie JSON i respektowanie changed 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.

Moduły komunikują się za pomocą JSON

Po zakończeniu działania moduł musi przekazać Ansible wynik w formacie JSON. Dzięki temu kontroler dowiaduje się, co wydarzyło się na hoście.

Kończ działaniem exit_json

W przypadku powodzenia należy wywołać module.exit_json. Wypisuje ono wynik jako JSON i poprawnie kończy działanie modułu, zwracając właściwy kod wyjścia.

module.exit_json(changed=True, name='web')

Kluczowe znaczenie ma changed

Zawsze należy prawidłowo raportować wartość changed. Informuje ona Ansible, czy system został zmodyfikowany, i decyduje o wyświetleniu w wyniku wiersza ok lub changed.

module.exit_json(changed=False)

Sprawdź stan przed zmianą

Aby poprawnie obsłużyć wartość changed, należy najpierw odczytać bieżący stan. Jeśli już odpowiada on celowi, trzeba ustawić changed=False i niczego nie zmieniać.

if current == desired:
    module.exit_json(changed=False)

Zwracaj dodatkowe dane

Do exit_json można dodać dowolne klucze, które pojawią się w wyniku zadania. Użytkownicy mogą później zarejestrować te dane i ponownie je wykorzystać.

module.exit_json(changed=True, user_id=42)

Zgłaszaj błąd za pomocą fail_json

Gdy coś pójdzie nie tak, należy wywołać module.fail_json z jasnym komunikatem. Ansible oznaczy zadanie jako zakończone błędem i wyświetli ten tekst.

module.fail_json(msg='API request timed out')

Nigdy nie używaj samego print

Nie należy używać print ani surowego stdout. Ansible oczekuje wyłącznie końcowego obiektu JSON, dlatego dodatkowy print uszkadza wynik i powoduje niepowodzenie zadania.

Tylko jedno wywołanie kończące

Każdy moduł kończy się dokładnie jednym wywołaniem exit_json lub fail_json. Oba wywołania zgłaszają SystemExit, więc kod znajdujący się za nimi nie zostanie wykonany.

Przydatny komunikat pomaga

W wynikach należy umieścić przyjazny komunikat msg opisujący wykonane działania. Dobre komunikaty zmieniają trudne do zrozumienia wykonania w czytelne wyniki.

module.exit_json(changed=True, msg='Created user web')

Naśladuj działanie wbudowanych modułów

Wynik powinien przypominać wyniki modułów podstawowych: należy raportować changed, zwracać znaczące pola i wyraźnie zgłaszać błędy wraz z ich przyczyną. Spójność buduje zaufanie.

Wynik steruje wszystkim

Procedury obsługi, instrukcje warunkowe i zarejestrowane zmienne odczytują dane z JSON. Poprawne ustawienie wartości changed sprawia, że moduł właściwie współpracuje z Ansible.

Szybki sprawdzian

Proszę zastanowić się, co moduł powinien zaraportować, gdy nic nie zostało zmodyfikowane.

Podsumowanie

W przypadku powodzenia należy zakończyć działanie za pomocą exit_json, a w przypadku błędu za pomocą fail_json, uczciwie raportować changed i nigdy nie wypisywać surowego wyniku. To protokół wyników modułu. 📦

Często zadawane pytania

Czy lekcja „Zwracanie JSON i respektowanie changed” jest bezpłatna?

Tak — pełny tekst „Zwracanie JSON i respektowanie changed” 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 „Zwracanie JSON i respektowanie changed”?

Przestrzeganie protokołu wyników modułu. Ć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 „Zwracanie JSON i respektowanie changed”?

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. Kiedy utworzyć własny moduł
  2. AnsibleModule i specyfikacja argumentów
  3. Zwracanie JSON i respektowanie changed
  4. Obsługa trybu check w module
← Powrót do DevOps Bootcamp