Rozgałęzianie na podstawie faktów o rodzinie systemu
Różne kroki dla Debiana i RedHata.
Rozgałęzianie na podstawie faktów o rodzinie systemu 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.
Jeden playbook, wiele dystrybucji
Debian używa apt, a RedHat — dnf. Dzięki faktom i when jeden playbook dostosowuje się do każdego systemu operacyjnego. 🐧
Fakt os_family
Ansible gromadzi fakt ansible_os_family — ogólną etykietę, taką jak Debian lub RedHat, która grupuje powiązane dystrybucje.
when: ansible_facts["os_family"] == "Debian"Rodzina a dystrybucja
os_family określa szeroką kategorię, natomiast ansible_distribution wskazuje konkretną dystrybucję. Ubuntu i Debian należą do rodziny Debian, ale są różnymi dystrybucjami.
Zadanie tylko dla Debiana
Ogranicz zadanie apt tak, aby uruchamiało się tylko w rodzinie Debian. Hosty RedHat po prostu je pominą.
- name: Install nginx (apt)
ansible.builtin.apt:
name: nginx
when: ansible_os_family == "Debian"Odpowiednik dla RedHat
Dodaj siostrzane zadanie dla rodziny RedHat. W ten sposób ten sam play obsługuje oba środowiska.
- name: Install nginx (dnf)
ansible.builtin.dnf:
name: nginx
when: ansible_os_family == "RedHat"Skrót package
W przypadku prostych instalacji ogólny moduł package automatycznie wybiera właściwe narzędzie, więc rozgałęzienie może nie być w ogóle potrzebne.
Wielkość liter w ciągach ma znaczenie
Nazwy rodzin muszą być zapisane dokładnie: jest to RedHat, a nie Redhat ani redhat. Błędna wielkość liter spowoduje po cichu pominięcie każdego hosta. ⚠️
Inne przydatne fakty systemu operacyjnego
Oprócz rodziny dostępne są także ansible_distribution_version oraz ansible_distribution_major_version, które pozwalają podejmować bardziej szczegółowe decyzje zależne od wersji.
when: ansible_distribution_major_version == "9"Sprawdź przed rozgałęzieniem
Nie mają Państwo pewności co do wartości? Krótkie zadanie debug wypisze fakt, dzięki czemu można utworzyć dokładny potrzebny warunek.
- ansible.builtin.debug:
var: ansible_os_familyFakty muszą zostać zebrane
Rozgałęzianie na podstawie faktów systemu operacyjnego wymaga włączenia gather_facts. Jeśli ta opcja została wyłączona, zmienna os_family będzie niezdefiniowana.
Przenośne playbooki wygrywają
Jeden plik obsługujący każdą dystrybucję jest łatwiejszy w utrzymaniu niż osobne kopie dla każdego systemu operacyjnego. Fakty oraz when sprawiają, że automatyzacja jest przenośna. 🌍
Szybki test
Ustalmy, jak działa rozgałęzianie według systemu operacyjnego.
Podsumowanie
Używaj ansible_os_family w when, aby rozdzielić obsługę systemów Debian i RedHat. Pozostaw zbieranie faktów włączone i dopasuj dokładną nazwę. ✅
Często zadawane pytania
Czy lekcja „Rozgałęzianie na podstawie faktów o rodzinie systemu” jest bezpłatna?
Tak — pełny tekst „Rozgałęzianie na podstawie faktów o rodzinie systemu” 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 „Rozgałęzianie na podstawie faktów o rodzinie systemu”?
Różne kroki dla Debiana i RedHata. Ć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 „Rozgałęzianie na podstawie faktów o rodzinie systemu”?
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
- Uruchamianie zadania tylko, gdy warunek jest True
- Rozgałęzianie na podstawie faktów o rodzinie systemu
- Łączenie warunków za pomocą and / or
- Rejestrowanie wyniku i podejmowanie decyzji