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 > 2048Dostę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_versionJeden 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
- Czym są fakty i dlaczego mają znaczenie
- Eksplorowanie faktów za pomocą modułu setup
- Korzystanie z ansible_facts w zadaniach
- Wyłączanie zbierania faktów dla szybkości