Zielsetzung
Um das Risiko eines Datenverlusts bei zukünftigen Wartungsarbeiten zu minimieren, soll ein zentrales Steuerungsscript ("Pre-Flight-Safety") entwickelt werden. Dieses Script dient dazu, vor manuellen Eingriffen (Docker-Upgrades, Host-Updates, Konfigurationsänderungen) einen konsistenten und validierten Zustand aller produktiven Daten einzufrieren.
Funktionale Anforderungen
- Sequenzielle Orchestrierung: Das Script muss alle vorhandenen Backup-Routinen (DB-Dump, File-Sync, Repo-Sync) nacheinander triggern.
- Blockier-Logik: Ein Fortfahren mit den Wartungsarbeiten darf nur empfohlen werden, wenn alle Teil-Backups mit dem Exit-Code 0 (Erfolg) abgeschlossen wurden.
- Manuelle Bestätigung: Das Script soll nach Abschluss der Sicherung eine explizite Bestätigung vom Operator fordern, bevor das System für Wartungsarbeiten "freigegeben" wird.
- Transparenz: Während des Laufs muss eine klare Statusausgabe erfolgen (welcher Task läuft gerade, welche Dateigrößen wurden gesichert).
Nicht-funktionale Anforderungen
- Unabhängigkeit: Das Script sollte so wenig Abhängigkeiten wie möglich haben (Plain Shell/Bash), um auch bei instabilen Docker-Umgebungen lauffähig zu bleiben.
- Idempotenz: Mehrfaches Ausführen hintereinander darf nicht zu inkonsistenten Zuständen oder Datenmüll führen.
- Sicherheits-Check: Das Script sollte prüfen, ob auf dem Zielmedium (lokaler Backup-Pfad) ausreichend Speicherplatz für den aktuellen Snapshot vorhanden ist.
Rahmenparameter für die Umsetzung
- Input: Das Script benötigt keine komplexen Parameter, sollte aber einen --dry-run Modus unterstützen.
- Output: Ein finales Logfile pro Lauf, das im Falle eines Scheiterns eine schnelle Fehleranalyse ermöglicht.
- Integration: Das Script bildet die technische Basis für die prozessuale Vorgabe: "Kein docker compose pull ohne erfolgreichen Pre-Flight-Check".
Abnahmekriterien
- Erfolgreicher Durchlauf aller Backup-Module im Testsystem.
- Simulation eines Fehlers (z.B. voller Datenträger) führt zum Abbruch mit klarer Fehlermeldung.
- Dokumentation des Skript-Aufrufs im Wartungshandbuch.