itnok.is_ubuntu

is-ubuntu

Status budowy Tag GitHub Rola Ansible

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 []

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)

O projekcie

Detects whether the target Ubuntu host is... a container or eventually localhost (and more).

Zainstaluj
ansible-galaxy install itnok.is_ubuntu
Licencja
mit
Pobrania
6.8k
Właściciel