Oczekiwany stan zamiast skryptów krok po kroku
Dowiedz się, dlaczego podejście deklaratywne wygrywa z imperatywnym.
Oczekiwany stan zamiast skryptów krok po kroku to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 1 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.
Opisz stan końcowy, nie kroki
Ansible jest deklaratywne: opisujesz oczekiwany stan końcowy, a Ansible ustala kroki prowadzące do niego, niezależnie od obecnego stanu hosta.
Podejście imperatywne
Skrypt imperatywny zawiera dokładne polecenia w określonej kolejności. Zakłada stan początkowy, więc przestaje działać, gdy host jest już częściowo skonfigurowany.
apt-get update
apt-get install -y nginx
systemctl start nginxPodejście deklaratywne
Zadanie deklaratywne określa jedynie cel: nginx ma być zainstalowany i uruchomiony. Ansible sprawdza rzeczywisty stan i działa tylko wtedy, gdy jest to potrzebne.
ansible.builtin.package:
name: nginx
state: presentstate określa cel
Klucz state służy do deklarowania zamiaru. Wartości present, started lub absent określają oczekiwany stan końcowy, a nie czynność do wykonania.
ansible.builtin.service:
name: nginx
state: startedAnsible najpierw porównuje stany
Zanim moduł cokolwiek zmieni, porównuje bieżący stan z zadeklarowanym. Jeśli oba stany już się zgadzają, nie robi zupełnie nic.
To jest konwergencja
Każde uruchomienie przybliża hosta do zadeklarowanego stanu. To właśnie konwergencja: niezależnie od punktu wyjścia host ostatecznie osiąga ten sam stan.
Kolejność ma mniejsze znaczenie
Ponieważ zadania deklarują cele, ponowne uruchomienie niedokończonego playbooka po prostu wykonuje pozostałą część. Nie muszą Państwo śledzić, który krok ostatnio zakończył się niepowodzeniem.
Można bezpiecznie uruchomić ponownie
Deklaratywne zadania można bezpiecznie uruchamiać ponownie. Hosty, które są już w poprawnym stanie, pozostają nietknięte — na tym właśnie opiera się idempotencja.
Mniej do zapamiętania
Nie trzeba już ręcznie pisać warunków typu „jeśli zainstalowano, pomiń”. Moduł zajmuje się tą logiką, dzięki czemu Państwa playbook pozostaje krótki i czytelny.
Playbook jest źródłem prawdy
Deklaratywny playbook przypomina dokumentację pożądanego serwera: opisuje, jakie pakiety, usługi i pliki powinny się na nim znajdować.
- name: Web server desired state
hosts: web
tasks:
- ansible.builtin.package:
name: nginx
state: presentNiektóre zadania nadal są imperatywne
Zwykłe zadania command i shell są imperatywne: uruchamiają się za każdym razem. Należy preferować moduły oparte na stanie, aby Ansible zachował deklaratywny charakter.
Szybkie sprawdzenie
Piszą Państwo zadanie określające, że nginx powinien być obecny, a następnie uruchamiają Państwo playbook na hoście, na którym nginx już jest zainstalowany.
Podsumowanie
Deklarują Państwo pożądany stan, a Ansible doprowadza hosta do niego, działając tylko wtedy, gdy rzeczywisty stan jest inny. Ta bezpieczność to idempotencja. 🎯
Często zadawane pytania
Czy lekcja „Oczekiwany stan zamiast skryptów krok po kroku” jest bezpłatna?
Tak — pełny tekst „Oczekiwany stan zamiast skryptów krok po kroku” 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 „Oczekiwany stan zamiast skryptów krok po kroku”?
Dowiedz się, dlaczego podejście deklaratywne wygrywa z imperatywnym. Ć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 1 z 4.
Ile czasu zajmuje lekcja „Oczekiwany stan zamiast skryptów krok po kroku”?
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
- Oczekiwany stan zamiast skryptów krok po kroku
- Odczytywanie changed i ok w wynikach
- Dlaczego command łamie idempotencję
- Tryb sprawdzania: próbny przebieg z --check