Add monthly offsite restore tests and automatic cleanup
This commit is contained in:
1 parent
64eab1d3c2
commit
f0c761213d
18 files changed
+1386
-16
No files matched your search
+26
-1
@@ -1,5 +1,30 @@
|
||||
# Automatisches Update-Paket
|
||||
|
||||
## Neu: monatlicher Restore-Test
|
||||
|
||||
Das Paket enthält jetzt den automatischen vollständigen Offsite-Restore-Test.
|
||||
Wegen des knappen Speichers arbeitet er Komponenten einzeln ab und entfernt
|
||||
jeweils Archiv, entpackte Daten und Test-DB. Auch Fehler- und Abbruchpfade besitzen
|
||||
eine Bereinigung. Es bleiben nur kleine, begrenzte Betriebsnachweise.
|
||||
|
||||
Vor dem Paketstart nach [RESTORE_TEST.md](RESTORE_TEST.md) ein lokales, zur
|
||||
Produktions-MariaDB passendes Docker-Image vorbereiten, Speichergrenzen prüfen und
|
||||
`ENABLE_RESTORE_TEST=true` sowie `RESTORE_TEST_DB_IMAGE` in der aktiven Konfiguration
|
||||
setzen. Die zusätzliche Vorprüfung kontrolliert lokale Voraussetzungen, ohne
|
||||
Images oder Backups herunterzuladen. Fehlende Voraussetzungen stoppen die
|
||||
Vorbereitung vor der Installation. Nach erfolgreicher Update-Abnahme aktiviert
|
||||
der Installer den monatlichen Timer (1., 06:00 Uhr Serverzeit) und die
|
||||
Boot-Bereinigung. Der erste echte Restore-Test hat eine eigene Mail und
|
||||
`$WORKDIR/restore-test/state.json`; sein Erfolg ist separat zu kontrollieren.
|
||||
|
||||
Bestehende Konfigurationen ohne `ENABLE_RESTORE_TEST` bleiben deaktiviert.
|
||||
Bestehende Restore-Test-Zeitpläne werden erhalten; neue Vorlagen liegen als `.dist`
|
||||
daneben. Bei einem Paketrollback werden die Test-Timer/-Bereinigungs-Units vor dem
|
||||
Zurückspielen deaktiviert und die vorherigen Dateien wiederhergestellt. Den
|
||||
gewünschten Zeitplan danach anhand des zurückgespielten Paketstands prüfen.
|
||||
|
||||
## Paket starten
|
||||
|
||||
Für Gemini zuerst `MAIL_HOSTNAME="gemini.jr-it-services.de"` in der aktiven
|
||||
Konfiguration setzen: [Mailberichte nach dem Update](#mailberichte-nach-dem-update).
|
||||
|
||||
@@ -475,7 +500,7 @@ Das ausführbare Paket ausschließlich über euren vertrauenswürdigen Kanal bez
|
||||
|
||||
## Verifikation der Lieferung
|
||||
|
||||
Verifikation am 12.09.2026: Gesamtlauf mit 68 Testfällen (741,0 Sekunden), davon 63 direkt erfolgreich. Fünf Mail-Testprüfungen wurden für korrekte SMTP-Zeilenumbrüche (CRLF) angepasst; danach bestanden alle 13 gezielt wiederholten Mail-/Installertests (155,9 Sekunden), darunter sämtliche fünf betroffenen Fälle. Dies umfasst den konfigurierbaren Mail-Hostnamen, automatische FQDN-Ermittlung, erhaltenen Absender, Versandfehler/-Timeout, Header-Schutz und Paketupdate mit erhaltenen Mail-Einstellungen. ShellCheck und Shell-Syntaxprüfung erfolgreich. Der MTA wird durch eine lokale Attrappe ersetzt; die Tests versenden keine echten E-Mails. Die Tests für eine über Umgebungsvariablen abgeschwächte Inhaltsprüfung und den nicht bytegenauen Marker-Vergleich reproduzierten die Fehler vor der Korrektur und bestanden danach.
|
||||
Verifikation am 12.09.2026: Standardlauf mit 81 Fällen erfolgreich (80 bestanden, ein separater Docker-Test planmäßig übersprungen; 704,8 Sekunden). Zusätzlich bestanden alle 19 gezielten Restore-Tests mit echten DB-Containern und der Installer-/Rollback-Test mit aktiviertem Restore-Timer. Geprüft sind vollständiges Entpacken, isolierter SQL-Import, fehlerhafte Dumps, Platzgrenzen und Bereinigung nach normalen und harten Abbrüchen. ShellCheck, Shell-Syntax und systemd-Unit-Prüfung erfolgreich. Echte E-Mails werden in Entwicklungstests nicht versendet; die Serverabnahme des Monatslaufs erfolgt nach Installation.
|
||||
|
||||
Die Tests enthalten echte MariaDB-Dumps/Imports und lokale rclone-Crypt-Roundtrips;
|
||||
systemd/occ und die systemd-run-Übergabe sind simuliert. Das Übergabemodell
|
||||
|
||||
Reference in new issue
Block a user