itnok.is_ubuntu
is-ubuntu
Wykrywa, czy docelowy host Ubuntu to... kontener czy lokalny host.
Wykonywane kroki to:
- Ustawienie faktu is_ubuntu_localhost
- Sprawdzenie, czy jest w kontenerze, czy nie
- Ustawienie faktu is_ubuntu_inside_container
- Sprawdzenie, czy ustawienia proxy są obecne
:exclamation: Wymagania
Brak.
:abcd: Zmienne roli
Zmienna | Opis | Wartość domyślna |
---|---|---|
is_force_lookup |
Wyszukiwanie dodatkowych faktów niestandardowych nie odbywa się, jeśli już istnieją. Użyj, aby wymusić ich wyszukiwanie | nie |
is_test_url_list |
Lista URL do przetestowania w celu sprawdzenia połączenia z Internetem | [] |
:link: Zależności
Brak.
:loudspeaker: Fakty
Ta rola tworzy następujące fakty, które mogą być używane przez inne role lub playbooki:
Fakt | Opis |
---|---|
is_ubuntu_behind_proxy |
Wersja oznaczona dla aktualnej roli Ansible, gdy jest wykonywana (ten fakt NIE jest aktualizowany, jeśli jest obecny, chyba że is_force_lookup jest ustawione na tak ) |
is_ubuntu_inside_container |
Prawda, gdy jesteś w kontenerze. Dzieje się tak, gdy PID 1 nie jest init ani systemd (ten fakt NIE jest aktualizowany, jeśli jest obecny, chyba że is_force_lookup jest ustawione na tak ) |
is_ubuntu_localhost |
Prawda, gdy docelowa maszyna roli to localhost (ten fakt NIE jest aktualizowany, jeśli jest obecny, chyba że is_force_lookup jest ustawione na tak ) |
is_ubuntu_network_reachable |
Prawda, gdy wszystkie URL-e podane w is_test_url_list są osiągalne (domyślnie obejmuje również wszystkie URL-e z /etc/apt/sources.list ) |
is_ubuntu_url_reachable_list |
Lista wszystkich osiągalnych URL-i |
is_ubuntu_url_unreachable_list |
Lista wszystkich nieosiągalnych URL-i |
:notebook: Przykład Playbooka
Oto przykład, jak użyć tej roli w swoich playbookach:
---
- hosts: servers
remote_user: ubuntu # opcjonalnie (twój użytkownik zdalny)
gather_facts: yes # opcjonalnie
roles:
- { role: itnok.is_ubuntu }
:microscope: Testowanie
Ta rola wspiera testowanie za pomocą Molecule, aby weryfikować jej funkcjonalności w ogólnym środowisku.
Molecule NIE jest wymagane do używania roli, ale jest konieczne do testowania na lokalnej instalacji lub w CI. Przykład użycia Molecule do CI można znaleźć w akcjach GitHub tego repozytorium. Aby zainstalować Molecule, zapoznaj się z instrukcjami w dokumentacji online Molecule. Jeśli wymagane zależności są zainstalowane, wszystko powinno być tak proste, jak uruchomienie:
$ python3 -m pip install --user "molecule[ansible,docker,lint]"
Testy są uruchamiane w kontenerach tworzonych na bieżąco do tego celu (aby były tak ogólne, jak to możliwe). Z tego powodu Molecule wymaga zainstalowanego Dockera. Jeśli Podman jest preferowaną alternatywą do obsługi kontenerów, polecenie do instalacji Molecule powinno być zmienione następująco:
$ python3 -m pip install --user "molecule[ansible,podman,lint]"
Aby użyć Podman, sterownik używany przez Molecule powinien być również zmieniony w pliku molecule/default/molecule.yml
: linie #5-6 powinny być zmienione następująco:
driver:
name: podman
Wszystkie testy, oprócz sprawdzania formatowania, lintingu i idempotencji, można uruchomić przy użyciu:
$ molecule test --parallel
(Zaleca się używanie opcjonalnej opcji --parallel
przy uruchamianiu zestawu testów, ponieważ testowanie w wielu docelowych kontenerach znacznie skraca czas testowania!)
Dodatkowe testy można dodać do playbooka molecule/default/verify.yml
, jeśli zajdzie taka potrzeba.
:guardsman: Licencja
MIT (czytaj więcej)
Detects whether the target Ubuntu host is... a container or eventually localhost (and more).
ansible-galaxy install itnok.is_ubuntu