Ansible Academy · Lekcja

defaults a vars: kolejność nadpisywania

Projektowanie przejrzystych interfejsów zmiennych ról.

Lekcja 2 z 413 kroki

defaults a vars: kolejność nadpisywania to bezpłatna lekcja Ansible Academy 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 Ansible Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ansible Academy zawiera 4 lekcji w sumie.

Dwa katalogi zmiennych

Rola może definiować zmienne w dwóch miejscach: defaults/main.yml i vars/main.yml. Wyglądają podobnie, ale działają zupełnie inaczej.

defaults mają niski priorytet

Wartości w pliku defaults/main.yml mają najniższy priorytet. Są łagodnymi sugestiami, które niemal wszystko inne może zastąpić.

# defaults/main.yml
http_port: 80
workers: 4

vars mają wysoki priorytet

Wartości w pliku vars/main.yml mają wysoki priorytet. Są stanowczymi decyzjami wymaganymi przez rolę i trudno je zastąpić.

# vars/main.yml
config_path: /etc/myapp

defaults są publicznym API

W sekcji defaults umieszczaj wszystko, co użytkownik może chcieć dostosować. To sygnał: można to swobodnie zmieniać. Tak projektuje się przyjazne i wielokrotnego użytku role.

vars to wewnętrzne stałe

Sekcję vars rezerwuj dla wartości niezbędnych do działania roli, których użytkownicy nie powinni zmieniać, takich jak wewnętrzna ścieżka lub stała nazwa pakietu.

Łatwo zastąp wartość domyślną

Użytkownik może zastąpić wartość z sekcji default za pomocą group_vars, host_vars, play lub wiersza poleceń. Najprostsze zastąpienie zaczyna obowiązywać natychmiast.

roles:
  - role: web
    vars:
      http_port: 8080

Zastąpienie wartości vars jest trudne

Rola vars ma wyższy priorytet niż group_vars, host_vars i zmienne play. Wyżej stoją tylko extra-vars przekazane w wierszu poleceń, dlatego vars należy stosować oszczędnie.

Extra-vars zawsze wygrywają

Zmienne przekazane za pomocą -e w wierszu poleceń mają wyższy priorytet niż wszystkie inne źródła, w tym vars roli. To ostateczne zastąpienie.

ansible-playbook site.yml -e http_port=9090

Hierarchia priorytetów

Zapamiętaj tę hierarchię: na dole znajdują się defaults, wyżej zmienne inventory i play, następnie vars roli, a ponad nimi wszystkimi extra-vars.

Wskazówka projektowa

Niemal zawsze wybieraj defaults. Po vars sięgaj tylko wtedy, gdy dana wartość naprawdę musi pozostać zablokowana. Elastyczne role zadowalają zespoły.

Udokumentuj wartości domyślne

Dodaj komentarz do każdej wartości w pliku defaults/main.yml. Użytkownicy będą je dostosowywać, więc jasne objaśnienia zmienią rolę w samodokumentującą się automatyzację.

Szybki test

Zastanów się, który plik użytkownik może najłatwiej zmienić.

Podsumowanie

Używaj defaults dla wartości, które użytkownicy mogą dostosowywać, a vars — dla zablokowanych stałych wewnętrznych. Extra-vars w CLI mają wyższy priorytet niż wszystko inne. 🎚️

Bezpłatny start

Ucz się YAML dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „defaults a vars: kolejność nadpisywania” jest bezpłatna?

Tak — pełny tekst „defaults a vars: kolejność nadpisywania” 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 „defaults a vars: kolejność nadpisywania”?

Projektowanie przejrzystych interfejsów zmiennych ról. Ć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 2 z 4.

Ile czasu zajmuje lekcja „defaults a vars: kolejność nadpisywania”?

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. Zależności ról w meta/main.yml
  2. defaults a vars: kolejność nadpisywania
  3. include_role i import_role w czasie działania
  4. allow_duplicates i idempotencja ról
← Powrót do Ansible Academy