itnok.is_ubuntu

is-ubuntu

Build-Status GitHub-Tag Ansible-Rolle

Erkennt, ob der Ziel-Ubuntu-Host ... ein Container oder eventuell localhost ist.

Durchgeführte Schritte:

  • Setze is_ubuntu_localhost Fakt
  • Prüfe, ob wir uns in einem Container befinden oder nicht
  • Setze is_ubuntu_inside_container Fakt
  • Prüfe, ob Proxy-Einstellungen vorhanden sind oder nicht

:exclamation: Anforderungen


Keine.

:abcd: Rollenvariablen


Variable Beschreibung Standardwert
is_force_lookup Die Suche nach benutzerdefinierten zusätzlichen Fakten erfolgt nicht, wenn sie bereits existieren. Damit wird gezwungen, sie zu suchen. nein
is_test_url_list Liste von URLs, um die Internetverbindung/Erreichbarkeit zu testen []

Keine.

:loudspeaker: Fakten


Diese Rolle erstellt die folgenden Fakten, die von anderen Rollen oder Playbooks verwendet werden können:

Fakt Beschreibung
is_ubuntu_behind_proxy Version, die für die aktuelle Ansible-Rolle beim Ausführen gekennzeichnet ist (dieser Fakt wird nicht aktualisiert, wenn er vorhanden ist, es sei denn, is_force_lookup ist auf ja gesetzt)
is_ubuntu_inside_container Wahr, wenn wir uns in einem Container befinden. Dies passiert, wenn PID 1 weder init noch systemd ist (dieser Fakt wird nicht aktualisiert, wenn er vorhanden ist, es sei denn, is_force_lookup ist auf ja gesetzt)
is_ubuntu_localhost Wahr, wenn die zielgerichtete Maschine der Rolle localhost ist (dieser Fakt wird nicht aktualisiert, wenn er vorhanden ist, es sei denn, is_force_lookup ist auf ja gesetzt)
is_ubuntu_network_reachable Wahr, wenn alle URLs aus is_test_url_list erreichbar sind (es sind standardmäßig auch alle URLs aus /etc/apt/sources.list enthalten)
is_ubuntu_url_reachable_list Liste aller erreichbaren URLs
is_ubuntu_url_unreachable_list Liste aller unerreichbaren URLs

:notebook: Beispiel-Playbook


Hier ein Beispiel, wie man diese Rolle in seinen Playbooks verwendet:

---
- hosts: servers
  remote_user: ubuntu   # optional (dein Benutzer für den Remotezugriff)
  gather_facts: ja     # optional

  rollen:
    - { rolle: itnok.is_ubuntu }

:microscope: Tests


Diese Rolle unterstützt Tests mit Molecule, um ihre Funktionalitäten in einer allgemeinen Umgebung zu überprüfen.

Molecule wird nicht benötigt, um die Rolle zu verwenden, ist jedoch notwendig, um sie auf einer lokalen Installation oder in CI zu testen. Ein Beispiel für die Verwendung von Molecule für CI findet sich in den GitHub-Aktionen dieses Repositories. Für die Installation von Molecule siehe die Anweisungen in der Molecule-Dokumentation. Wenn die dort aufgeführten notwendigen Abhängigkeiten vorhanden sind, sollte alles so einfach sein wie:

$ python3 -m pip install --user "molecule[ansible,docker,lint]"

Die Tests werden in Containern ausgeführt, die zur Laufzeit für diesen Zweck erstellt werden (um so allgemein wie möglich zu sein). Aus diesem Grund muss Docker installiert sein. Wenn Podman eine bevorzugte Alternative zur Verwaltung von Containern ist, sollte der notwendige Befehl zur Installation von Molecule wie folgt geändert werden:

$ python3 -m pip install --user "molecule[ansible,podman,lint]"

Um Podman zu verwenden, sollte der von Molecule verwendete Treiber auch in der Datei molecule/default/molecule.yml geändert werden: Die Zeilen #5-6 sollten folgendermaßen geändert werden:

driver:
  name: podman

Alle Tests, zusätzlich zu Überprüfungen für Formatierung, Linting und Idempotenz, können mit folgendem Befehl ausgeführt werden:

$ molecule test --parallel

(Die Verwendung der optionalen --parallel-Option zum Starten der Test-Suite wird dringend empfohlen, weil sie bei Tests über mehrere Ziel-Container die Testlaufzeit erheblich verkürzt!)

Zusätzliche Tests können in das Playbook molecule/default/verify.yml hinzugefügt werden, falls nötig.

:guardsman: Lizenz


MIT (mehr erfahren)

Über das Projekt

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

Installieren
ansible-galaxy install itnok.is_ubuntu
GitHub Repository
Lizenz
mit
Downloads
6.8k
Besitzer