🚀 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)