Katalogi group_vars i host_vars
Porządkowanie zmiennych według hosta i grupy.
Katalogi group_vars i host_vars to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 2 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.
Przestań wpisywać zmienne na stałe
Ukrywanie wartości w playbookach szybko staje się kłopotliwe. Zamiast tego Ansible automatycznie ładuje zmienne z katalogów group_vars i host_vars. 🗂️
Jak ładowany jest group_vars
Plik w katalogu group_vars, nazwany tak jak grupa, jest stosowany do każdego hosta w tej grupie — nie trzeba go ręcznie dołączać.
# group_vars/webservers.yml
http_port: 80
worker_processes: 4Grupa all
Specjalny plik group_vars/all.yml ustawia wartości domyślne dla każdego hosta w inventory, co doskonale sprawdza się w przypadku ustawień obowiązujących w całej organizacji.
# group_vars/all.yml
timezone: UTC
ntp_server: pool.ntp.orgJak ładowany jest host_vars
Pliki w katalogu host_vars są nazywane tak jak pojedynczy host i dotyczą tylko tej maszyny, dlatego idealnie nadają się do ustawień specyficznych dla serwera.
# host_vars/web01.example.com.yml
server_id: 1
backup_disk: /dev/sdbNazwa musi się zgadzać
Nazwa pliku musi dokładnie odpowiadać nazwie grupy lub hosta występującej w inventory. W przeciwnym razie Ansible po cichu pominie ten plik.
Pliki lub katalogi
Każdy wpis może być pojedynczym plikiem .yml albo katalogiem zawierającym wiele plików. Ansible scala wszystkie pliki znajdujące się w katalogu.
group_vars/
webservers/
network.yml
tuning.ymlHost ma pierwszeństwo przed grupą
Jeśli ta sama zmienna występuje w obu miejscach, host_vars wygrywa z group_vars. Bardziej szczegółowy zakres zawsze zastępuje szerszy.
Pierwszeństwo grup podrzędnych
Wśród grup grupa podrzędna zastępuje swoją grupę nadrzędną, dzięki czemu grupy zagnieżdżone zapewniają warstwowe i przewidywalne wartości domyślne.
Względem inventory
Ansible najpierw szuka tych katalogów obok pliku inventory, a także obok uruchamianego playbooka.
Odwołuj się do nich jak zwykle
W zadaniach używa się tych zmiennych tak samo jak każdej innej, za pomocą składni {{ }}. Zadanie nie musi wiedzieć, skąd pochodzi zmienna.
- name: Open the web port
debug:
msg: "Port is {{ http_port }}"Czytelniejsze playbooki
Po wyprowadzeniu danych na zewnątrz playe opisują co należy zrobić, a group_vars i host_vars przechowują wartości specyficzne dla danego środowiska. 🎯
Szybkie sprawdzenie
Zmienna jest ustawiona zarówno w group_vars, jak i w host_vars. Która wartość ma pierwszeństwo?
Podsumowanie
Poznali Państwo sposób automatycznego ładowania group_vars i host_vars na podstawie nazw, a także zasadę, że host ma pierwszeństwo przed grupą, a grupa podrzędna przed nadrzędną. Dane należy wyprowadzać na zewnątrz, aby playbooki pozostały przejrzyste. ✅
Często zadawane pytania
Czy lekcja „Katalogi group_vars i host_vars” jest bezpłatna?
Tak — pełny tekst „Katalogi group_vars i host_vars” 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 „Katalogi group_vars i host_vars”?
Porządkowanie zmiennych według hosta i grupy. Ć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 2 z 4.
Ile czasu zajmuje lekcja „Katalogi group_vars i host_vars”?
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
- Zalecany układ katalogów
- Katalogi group_vars i host_vars
- Dzielenie playbooków za pomocą import i include
- Nazewnictwo, komentarze i styl na dużą skalę