0Pricing
Ansible Academy · Lekcja

Korzystanie z ansible_facts w zadaniach

Rozgałęziaj wykonanie na podstawie systemu operacyjnego, pamięci i adresu IP.

Korzystanie z ansible_facts w zadaniach to bezpłatna lekcja Ansible Academy na CoddyKit. To lekcja 3 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.

Od danych do decyzji

Zebrane fakty są przydatne tylko wtedy, gdy się na ich podstawie działa. Teraz można pobierać wartości z ansible_facts bezpośrednio w zadaniach. 🌟

Odwołanie do faktu

Użyj tej samej składni {{ }} co w przypadku każdej zmiennej. W nawiasach klamrowych podaj nazwę potrzebnego faktu, na przykład distribution hosta.

- debug:
    msg: "OS is {{ ansible_distribution }}"

Dostęp przez słownik również

Fakty można również odczytywać za pomocą słownika ansible_facts i kluczy w nawiasach kwadratowych. Oba sposoby wskazują te same dane.

{{ ansible_facts['distribution'] }}

Rozgałęzianie według systemu operacyjnego

Połącz fakt z when, aby uruchamiać zadanie tylko na pasujących hostach, na przykład instalować pakiet wyłącznie w systemach Debian.

when: ansible_os_family == "Debian"

Wybierz właściwy pakiet

Fakty pozwalają jednemu zadaniu obsługiwać wiele dystrybucji. Wybierz apache2 lub httpd na podstawie rodziny systemu operacyjnego, zamiast pisać dwa playbooki.

name: "{{ 'apache2' if ansible_os_family == 'Debian' else 'httpd' }}"

Korzystanie z faktów liczbowych

Fakty takie jak ansible_memtotal_mb są liczbami, więc można je porównywać i pomijać pracę na hostach o zbyt małych zasobach.

when: ansible_memtotal_mb > 2048

Dostęp do zagnieżdżonych wartości

W przypadku zagnieżdżonych faktów połącz klucze kropkami. Domyślny adres IPv4 znajduje się pod ansible_default_ipv4, a następnie pod kluczem address.

{{ ansible_default_ipv4.address }}

Fakty w szablonach

Te same nazwy faktów działają w szablonach Jinja2. Wstaw nazwę hosta hostname lub jego adres IP bezpośrednio do generowanego pliku konfiguracyjnego.

server_name {{ ansible_hostname }};

Iterowanie po faktach będących listami

Niektóre fakty są listami, na przykład ansible_interfaces. Można iterować po ich elementach, aby wykonać działanie na każdym interfejsie sieciowym hosta.

loop: "{{ ansible_interfaces }}"

Sprawdź przed użyciem

Nie masz pewności co do dokładnej wartości faktu? Najpierw wyświetl ją za pomocą debug, a dopiero potem zbuduj zależną od niej logikę.

- debug:
    var: ansible_distribution_version

Jeden playbook, wiele hostów

Ponieważ fakty dotyczą poszczególnych hostów, zadania oparte na faktach pozwalają jednemu playbookowi działać poprawnie w całej zróżnicowanej grupie maszyn.

Szybki test

Jak uruchomić zadanie tylko na hostach z rodziny Debian?

Podsumowanie

Odczytywano fakty za pomocą {{ }}, rozgałęziono działanie przy użyciu when, uzyskano dostęp do zagnieżdżonych wartości i iterowano po faktach będących listami, aby zadania mogły się dostosowywać. ✨

Często zadawane pytania

Czy lekcja „Korzystanie z ansible_facts w zadaniach” jest bezpłatna?

Tak — pełny tekst „Korzystanie z ansible_facts w zadaniach” 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 „Korzystanie z ansible_facts w zadaniach”?

Rozgałęziaj wykonanie na podstawie systemu operacyjnego, pamięci i adresu IP. Ć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 3 z 4.

Ile czasu zajmuje lekcja „Korzystanie z ansible_facts w zadaniach”?

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. Czym są fakty i dlaczego mają znaczenie
  2. Eksplorowanie faktów za pomocą modułu setup
  3. Korzystanie z ansible_facts w zadaniach
  4. Wyłączanie zbierania faktów dla szybkości
← Powrót do Ansible Academy