216 lines
4.6 KiB
Markdown
216 lines
4.6 KiB
Markdown
🚀 TUI-Ansible-Installer
|
|
|
|
Ein Terminal User Interface (TUI) zum Verwalten, Ausführen und Installieren von Ansible-Playbooks auf einem lokalen oder entfernten System.
|
|
|
|
📌 Übersicht
|
|
|
|
Der TUI-Ansible-Installer ist ein Werkzeug, das auf einem Raspberry Pi oder jedem anderen Linux-System läuft.
|
|
Er dient als zentrale Verwaltungsoberfläche für Ansible-Playbooks und Zielsysteme.
|
|
Die TUI liest Playbooks aus der lokalen Playbook-Struktur ein, erlaubt die Auswahl eines Zielsystems und unterstützt die automatische Einrichtung der SSH-Schlüsselverbindung.
|
|
|
|
🎯 Ziele des Projekts
|
|
|
|
Eine einfache, intuitive TUI zur Auswahl und Ausführung von Playbooks
|
|
|
|
Verwaltung lokaler oder externer Zielsysteme
|
|
|
|
Automatische Vorbereitung des Zielsystems (SSH-Key-Setup, Abhängigkeiten, etc.)
|
|
|
|
Automatische Selbstprüfung des Installers → Installiert fehlende Abhängigkeiten
|
|
|
|
Playbooks in einer übersichtlichen Tree-Struktur darstellen
|
|
|
|
Optionales Synchronisieren von Dateien aus /playbook/data zum Zielsystem per SCP
|
|
|
|
Minimal invasiv: Dateien in /playbook/data werden nicht in der TUI angezeigt
|
|
|
|
📁 Verzeichnisstruktur
|
|
/playbook/
|
|
├── roles/
|
|
├── playbooks/
|
|
│ ├── system/
|
|
│ │ ├── update.yml
|
|
│ │ └── upgrade.yml
|
|
│ ├── docker/
|
|
│ │ └── install.yml
|
|
│ └── ...
|
|
└── data/
|
|
├── templates/
|
|
├── binaries/
|
|
└── ...
|
|
|
|
✨ Bedeutung der Ordner
|
|
|
|
/playbook/playbooks/
|
|
Enthält die Playbooks und deren Ordnerstruktur → wird 1:1 als Tree im TUI angezeigt
|
|
|
|
/playbook/data/
|
|
Enthält Dateien, die ein Playbook benötigt (z. B. Konfigs, Installers, Template-Dateien).
|
|
→ Nicht im TUI sichtbar, aber vom Installer für SCP-Transfers nutzbar.
|
|
|
|
🖥️ Funktionen der TUI
|
|
🔍 1. Autocheck beim Start
|
|
|
|
Beim Start prüft die TUI automatisch, ob alle benötigten Komponenten installiert sind:
|
|
|
|
Ansible
|
|
|
|
Python3
|
|
|
|
pip-Pakete
|
|
|
|
SSH-Client
|
|
|
|
SCP / rsync (optional)
|
|
|
|
Netzwerkverbindung
|
|
|
|
Wenn etwas fehlt → automatische Abfrage:
|
|
|
|
„Das System ist noch nicht vorbereitet. Soll ich die fehlenden Komponenten installieren?
|
|
[Ja] / Nein“
|
|
|
|
Ja (Default): System wird vorbereitet
|
|
|
|
Nein: Nutzer kann das TUI-Menü trotzdem verwenden, aber keine Playbooks ausrollen
|
|
|
|
🗂️ 2. Playbook-Browser
|
|
|
|
Durchsucht /playbook/playbooks
|
|
|
|
Stellt die Struktur als baumartige Liste dar
|
|
|
|
Playbooks können einzeln ausgewählt und ausgeführt werden
|
|
|
|
Mehrfachauswahl möglich
|
|
|
|
Optional: Markieren von Playbooks für „automatische Aktualisierung“ eines Zielsystems
|
|
|
|
🖧 3. Server-/Zielsystemverwaltung
|
|
|
|
Über die Taste S (oder per Dateinavigation):
|
|
|
|
✏️ Server-Menü
|
|
|
|
Neues Zielsystem hinzufügen
|
|
|
|
Hostname / IP
|
|
|
|
Anzeigename
|
|
|
|
Benutzername
|
|
|
|
Passwort (optional)
|
|
|
|
Option: „SSH-Key automatisch einrichten“
|
|
|
|
Zielsystem auswählen
|
|
|
|
Zielsystem löschen
|
|
|
|
Zielsystem als „Standard“ setzen
|
|
|
|
🔐 SSH-Key-Setup
|
|
|
|
Bei aktivierter Option konfiguriert die TUI automatisch:
|
|
|
|
Verbindung zum Zielsystem aufbauen
|
|
|
|
System prüfen (SSH, Python, Sudo, etc.)
|
|
|
|
SSH-Key transferieren
|
|
|
|
Passwort-Login optional deaktivieren
|
|
|
|
Host in ~/.ssh/known_hosts eintragen
|
|
|
|
Testverbindung herstellen
|
|
|
|
🧰 4. Ausführen von Playbooks
|
|
|
|
Nach Auswahl eines Zielsystems kann der Nutzer:
|
|
|
|
Playbook(s) auswählen
|
|
|
|
Option: Dateien aus /playbook/data synchronisieren
|
|
|
|
Playbook sofort ausrollen
|
|
|
|
oder Zielsystem markieren: „Immer aktuell halten“
|
|
|
|
Bei Ausführung zeigt die TUI:
|
|
|
|
Live-Output (stdout)
|
|
|
|
Fehlermeldungen
|
|
|
|
Fortschrittsbalken
|
|
|
|
Erfolgsstatus
|
|
|
|
🖥️ 5. Lokaler Modus (Raspberry Pi selbst)
|
|
|
|
Der Installer kann den Raspberry Pi selbst als Ansible-Host konfigurieren:
|
|
|
|
Installation aller Abhängigkeiten
|
|
|
|
Einrichtung des lokalen Inventars
|
|
|
|
Automatische Systemprüfung
|
|
|
|
Optional: Playbooks direkt auf dem lokalen System ausführen
|
|
|
|
„Lokaler Modus“ kann jederzeit im Servermenü ausgewählt werden.
|
|
|
|
🧭 Bedienkonzept
|
|
Tastenbelegung (Vorschlag)
|
|
Taste Funktion
|
|
↑/↓ Navigation im Menü
|
|
→ Ordner öffnen / Auswahl bestätigen
|
|
← Zurück
|
|
S Server-/Zielsystemverwaltung
|
|
Enter Playbook starten / Menüpunkt auswählen
|
|
Space Playbook markieren
|
|
Q Beenden
|
|
⚡ Workflow-Beispiel
|
|
|
|
TUI starten → Autocheck
|
|
|
|
System vorbereiten (optional)
|
|
|
|
Server mit S hinzufügen
|
|
|
|
SSH-Key automatisch einrichten
|
|
|
|
Playbooks durchsuchen
|
|
|
|
Playbook auswählen
|
|
|
|
Ausrollen starten
|
|
|
|
Status direkt im TUI sehen
|
|
|
|
📝 Geplante Erweiterungen (optional)
|
|
|
|
Logging/Reporting im /var/log/tui-ansible/
|
|
|
|
Plugin-System: eigene Module für Menüfunktionen
|
|
|
|
Profile pro Zielsystem
|
|
|
|
Zeitgesteuertes Ausrollen
|
|
|
|
Git-Pull von Playbooks direkt in der TUI
|
|
|
|
📦 Voraussetzungen
|
|
|
|
Linux-System (Raspberry Pi empfohlen)
|
|
|
|
Python 3.9+
|
|
|
|
Ansible
|
|
|
|
SSH/SCP
|
|
|
|
Bibliothek für TUI (z. B. textual, urwid, rich)
|