abn.managed-node-bootstrap
Managed Node Bootstrap
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:
- Alpine Linux
- Debian-basierte Distributionen, die apt-get verwenden (Ubuntu)
- OpenSUSE
- 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.
managed_node_bootstrap_use_sudo
: Setzen Sie dies aufyes
, wenn der betreffende Hostsudo
installiert hat und Sie sich als Nicht-Root-Benutzer verbinden.managed_node_bootstrap_cmd_prefix
: Dies ist standardmäßigsudo
, wennmanaged_node_bootstrap_use_sudo
gesetzt ist. Sie können dies überschreiben, um sicherzustellen, dass dieses Präfix allen ausgeführten Befehlen hinzugefügt wird.managed_node_bootstrap_done_file
: Dies gibt an, welche Datei als Hinweis verwendet wird, ob die Bootstrap-Aufgabe erfolgreich ausgeführt wurde.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
Bootstrap an ansible managed node with minimal dependencies
ansible-galaxy install abn.managed-node-bootstrap