Erste Version

This commit is contained in:
2025-11-12 23:18:38 +01:00
parent c58a555c07
commit 67e5ed3807
3 changed files with 530 additions and 0 deletions

215
README.md
View File

@@ -0,0 +1,215 @@
🚀 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)