Pochodzenie zmiennych i ich pierwszeństwo
Poznaj pierwszą mapę źródeł zmiennych.
Pochodzenie zmiennych i ich pierwszeństwo to bezpłatna lekcja Ansible Academy 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 Ansible Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ansible Academy zawiera 4 lekcji w sumie.
Tak wiele źródeł
Tę samą zmienną można ustawić w wielu miejscach: w inventory, vars playu, plikach, wierszu poleceń i nie tylko. Która wartość rzeczywiście ma więc pierwszeństwo? 🌟
Decyduje pierwszeństwo
Ansible stosuje ustaloną kolejność zwaną pierwszeństwem zmiennych. Gdy nazwa zostanie ustawiona dwa razy, źródło o wyższym priorytecie nadpisuje źródło o niższym.
Wartości defaults roli są najniżej
Wartości w folderze defaults roli znajdują się na samym dole. Mają być łatwe do nadpisania przez niemal wszystko inne.
# roles/web/defaults/main.yml
http_port: 80Zmienne inventory
Zmienne ustawione w inventory, na przykład w group_vars lub host_vars, mają wyższą rangę niż defaults roli, ale niższą niż zmienne na poziomie playu.
# group_vars/web.yml
http_port: 8080Vars playu są wyżej
Zmienne pod kluczem vars playu mają pierwszeństwo przed wartościami z inventory. Zdefiniowana tutaj wartość nadpisuje wszystko w group_vars.
- hosts: web
vars:
http_port: 9090Vars zadania mają wąski zakres
Do pojedynczego zadania można dołączyć vars. Taka wartość obowiązuje tylko w tym miejscu i ma wyższą rangę niż szerszy zakres vars playu.
- debug:
var: http_port
vars:
http_port: 1234register i set_fact
Wartości przechwycone za pomocą register lub ustawione podczas działania za pomocą set_fact zajmują wysokie miejsce w kolejności, tuż pod dodatkowymi zmiennymi.
- set_fact:
http_port: 7000Dodatkowe zmienne są na szczycie
Dodatkowe zmienne z wiersza poleceń mają pierwszeństwo przed wszystkim innym. Cokolwiek zostanie przekazane za pomocą -e, jest ostateczną wartością podczas tego uruchomienia.
ansible-playbook site.yml -e http_port=443W obrębie poziomu wygrywa ostatnia definicja
Gdy dwa źródła mają ten sam poziom, obowiązuje źródło wczytane później. Najpierw decyduje pierwszeństwo, a kolejność wczytywania rozstrzyga remisy.
Zachowaj prostotę
Rzadko trzeba zapamiętywać całą tabelę. Umieszczaj rozsądne wartości w defaults, celowo je nadpisuj i unikaj ustawiania tej samej nazwy w wielu miejscach.
Sprawdź uzyskaną wartość
Nie wiadomo, która wartość zwyciężyła? Wyświetl ją za pomocą debug, aby zobaczyć rozstrzygnięty wynik, zanim zaufasz mu na produkcji.
- debug:
var: http_portSzybki test
Które źródło zmiennej ma najwyższy priorytet?
Podsumowanie
Poznano hierarchię pierwszeństwa: defaults są najniżej, dalej znajdują się zmienne inventory, playu i zadania, następnie set_fact, a na szczycie dodatkowe zmienne. ✨
Często zadawane pytania
Czy lekcja „Pochodzenie zmiennych i ich pierwszeństwo” jest bezpłatna?
Tak — pełny tekst „Pochodzenie zmiennych i ich pierwszeństwo” 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 Ansible Academy, przejdź na CoddyKit PRO. Kurs Ansible Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Pochodzenie zmiennych i ich pierwszeństwo”?
Poznaj pierwszą mapę źródeł zmiennych. Ćwiczysz Ansible Academy 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ąć Ansible Academy?
Nie wymagamy żadnego doświadczenia. Ansible Academy 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 „Pochodzenie zmiennych i ich pierwszeństwo”?
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 Ansible Academy?
Tak. Każda lekcja Ansible Academy 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
- Definiowanie i używanie vars w play
- Składnia podstawiania {{ }}
- Dodatkowe zmienne w wierszu poleceń
- Pochodzenie zmiennych i ich pierwszeństwo