0Pricing
Ansible Academy · Lekcja

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: 80

Zmienne 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: 8080

Vars 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: 9090

Vars 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: 1234

register 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: 7000

Dodatkowe 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=443

W 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_port

Szybki 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

  1. Definiowanie i używanie vars w play
  2. Składnia podstawiania {{ }}
  3. Dodatkowe zmienne w wierszu poleceń
  4. Pochodzenie zmiennych i ich pierwszeństwo
← Powrót do Ansible Academy