Zarządzanie rozbieżnością stanu i uzgadnianiem
Wykrywaj, diagnozuj i uzgadniaj rozbieżności — różnice między stanem Terraform a rzeczywistą infrastrukturą — zanim spowodują awarie lub nieoczekiwane zmiany.
Zarządzanie rozbieżnością stanu i uzgadnianiem 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.
Czym jest drift?
Drift występuje, gdy rzeczywista infrastruktura zmienia się poza Terraform, inżynier modyfikuje ustawienie w konsoli lub innego zasobu dotyczy zmiana wykonana przez inne narzędzie. Stan i rzeczywistość przestają się zgadzać, a kolejne apply może nieoczekiwanie cofnąć lub nadpisać te zmiany.
Wykrywanie driftu za pomocą plan
Zwykłe polecenie terraform plan odświeża stan i pokazuje różnice. Jeśli zasób uległ driftowi, plan zgłasza zmiany, których nie wprowadzono w kodzie.
terraform planPlan tylko do odświeżenia
Aby zobaczyć drift bez proponowania zmian w konfiguracji, użyj planu typu refresh-only. Aktualizuje on stan tak, aby odpowiadał rzeczywistości, i pokazuje występujące różnice.
terraform plan -refresh-onlyOdczytywanie raportu o driftcie
Terraform oznacza atrybuty dotknięte driftem wykrytą zmianą. Tylda oznacza zmianę w miejscu, a para minus/plus wskazuje, że wartość została dodana lub usunięta poza Terraform.
# aws_instance.web has changed
~ instance_type = "t3.micro" -> "t3.small"Dwa sposoby uzgodnienia
Po wykryciu driftu należy wybrać kierunek działania:
- Zaakceptować rzeczywistość — zaktualizować kod, aby odpowiadał nowemu stanowi.
- Przywrócić kod — wykonać apply, aby przywrócić infrastrukturę do stanu określonego w konfiguracji.
Akceptowanie driftu w stanie
Jeśli ręczna zmiana była zamierzona, uruchom apply -refresh-only, aby zapisać rzeczywisty stan, a następnie zaktualizuj kod, aby mu odpowiadał i aby przyszłe plany nie wykazywały różnic.
terraform apply -refresh-onlyCofanie driftu
Jeśli zmiana była nieautoryzowana, zwykłe terraform apply przywraca infrastrukturę do zadeklarowanej konfiguracji, cofając ręczną edycję.
terraform applyWybieranie pojedynczego zasobu
W przypadku punktowej poprawki parametr -target ogranicza operację do jednego zasobu. Używaj go oszczędnie, ponieważ może ukryć szerszy drift.
terraform apply -target=aws_instance.webZapobieganie pozornemu driftowi
Niektórymi atrybutami zarządza AWS lub inne narzędzia. Użyj ignore_changes, aby Terraform przestał z nimi walczyć.
resource "aws_instance" "web" {
lifecycle {
ignore_changes = [tags["LastScanned"]]
}
}Ciągłe wykrywanie driftu
Wykrywaj drift wcześnie, uruchamiając w CI zaplanowany plan typu refresh-only. Terraform Cloud oferuje wbudowane wykrywanie driftu i powiadamia, gdy stan rozmija się z rzeczywistością.
on:
schedule:
- cron: "0 6 * * *"Kultura ważniejsza niż narzędzia
Najlepszą ochroną przed driftem jest proces: ogranicz uprawnienia do zapisu w konsoli, kieruj wszystkie zmiany przez Terraform i traktuj ręczne edycje jako incydenty. Narzędzia wykrywają drift, ale zapobiega mu dyscyplina.
Szybki test
Sprawdź swoją wiedzę na temat zarządzania driftem.
Podsumowanie: utrzymywanie zgodności stanu z rzeczywistością
Potrafi Pan/Pani teraz obsługiwać drift:
- Wykrywać go za pomocą
planlubplan -refresh-only. - Akceptować go przez
apply -refresh-onlyoraz aktualizację kodu. - Cofać go za pomocą zwykłego
apply. - Używać
ignore_changesi zaplanowanych kontroli, aby odpowiednio wcześnie reagować.
Często zadawane pytania
Czy lekcja „Zarządzanie rozbieżnością stanu i uzgadnianiem” jest bezpłatna?
Tak — pełny tekst „Zarządzanie rozbieżnością stanu i uzgadnianiem” 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 „Zarządzanie rozbieżnością stanu i uzgadnianiem”?
Wykrywaj, diagnozuj i uzgadniaj rozbieżności — różnice między stanem Terraform a rzeczywistą infrastrukturą — zanim spowodują awarie lub nieoczekiwane zmiany. Ć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 „Zarządzanie rozbieżnością stanu i uzgadnianiem”?
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
- Debugowanie konfiguracji Terraform
- Strategie optymalizacji wydajności
- Odzyskiwanie po awarii za pomocą Terraform
- Zarządzanie rozbieżnością stanu i uzgadnianiem