abn.managed-node-bootstrap

Managed Node Bootstrap

Build-Status Ansible Rolle

Ein Ansible-verwalteter Knoten mit minimalen Abhängigkeiten einrichten. Dies wurde ursprünglich entwickelt, um Instanzen von Basis-Docker-Images zu bootstrappen, und könnte daher Verbesserungen erfordern, bevor es stabil für die Nutzung ohne Container wird.

Aktuell unterstützte Distributionen sind:

  1. Alpine Linux
  2. Debian-basierte Distributionen, die apt-get verwenden (Ubuntu)
  3. OpenSUSE
  4. Red Hat-basierte Distributionen, die dnf/yum verwenden (Red Hat Enterprise Linux, CentOS, Fedora)

Anforderungen

Es gibt keine zusätzlichen Anforderungen, außer einer Ansible-Version, die das raw-Modul unterstützt. Die Entwicklung wurde auf Ansible 2.2+ durchgeführt.

Variablen für die Rolle

Diese Rolle unterstützt die folgenden Konfigurationen über Variablen.

  1. managed_node_bootstrap_use_sudo: Setzen Sie dies auf yes, wenn der betreffende Host sudo installiert hat und Sie sich als Nicht-Root-Benutzer verbinden.
  2. managed_node_bootstrap_cmd_prefix: Dies ist standardmäßig sudo, wenn managed_node_bootstrap_use_sudo gesetzt ist. Sie können dies überschreiben, um sicherzustellen, dass dieses Präfix allen ausgeführten Befehlen hinzugefügt wird.
  3. managed_node_bootstrap_done_file: Dies gibt an, welche Datei als Hinweis verwendet wird, ob die Bootstrap-Aufgabe erfolgreich ausgeführt wurde.
  4. managed_node_packages_{alpine,debian,opensuse,redhat}: Dies wird verwendet, um die Liste der zu installierenden Pakete für jede dieser Distributionen zu konfigurieren.

Abhängigkeiten

Es sind keine Abhängigkeiten erforderlich, außer Ansible selbst.

Beispiel-Playbook

Hier ist ein Beispiel-Play, das verwendet werden kann, um alle Ihre Hosts in Ihrem Inventar zu bootstrappen. Beachten Sie, dass die Ansible-Verbindungsart usw. extern konfiguriert werden muss. Außerdem müssen Sie sich als Root-Benutzer verbinden, da wir davon ausgehen, dass sudo auf diesen Instanzen nicht verfügbar ist (Annahme bei Docker-Images). Siehe oben, um dieses Verhalten zu ändern.

---
- name: Ansible-verwalteten Knoten bootstrappen
  hosts: all
  gather_facts: False
  roles:
    - abn.molecule-node-bootstrap

Testen

Vor dem Testen müssen Sie sicherstellen, dass die erforderlichen Submodule geklont wurden.

git submodule update --init --recursive

Lokale Umgebung

Diese Rolle verwendet Molecule und Docker-Instanzen, um Tests zu ermöglichen. Sie können dies lokal in Ihrer Entwicklungsumgebung ausführen, vorausgesetzt, Sie haben Python installiert und führen den Docker-Daemon aus.

# Molecule- und docker-py-Anforderungen installieren
pip install -r test-requirements.txt
molecule test

Dies wird, wie im Standard-Molecule-Szenario konfiguriert, Container der unterstützten Distributionen starten und ein Beispiel-Playbook ausführen.

Tox

Dieses Projekt hat auch tox konfiguriert, um gegen mehrere Ansible-Versionen mit Molecule zu laufen. Dies kann einfach mit tox ausgeführt werden.

tox

Siehe die Molecule-Dokumentation und die tox-Dokumentation für erweiterte Nutzungshinweise.

Lizenz

Apache License 2.0

Über das Projekt

Bootstrap an ansible managed node with minimal dependencies

Installieren
ansible-galaxy install abn.managed-node-bootstrap
GitHub Repository
Lizenz
apache-2.0
Downloads
73