Files
ansible-tui/README.md
2025-11-12 23:18:38 +01:00

4.6 KiB

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