7.1 KiB
7.1 KiB
Backup-Automation System - Lieferung
📦 Was du erhältst
Ein produktionsreifes, vollständig automatisiertes Backup-System für deine MBO-Tech-IT Infrastruktur:
- ✅ Netbox-integriert: TAG-basierte automatische Identifikation
- ✅ Kestra-orchestriert: Tägliche autonome Ausführung
- ✅ Ansible-deployed: Standardisierte Installation
- ✅ Borg-gesichert: Dedupliziert, verschlüsselt, effizient
- ✅ S3-repliziert: Offsite auf Hetzner
- ✅ Docker-aware: MySQL/PostgreSQL Dumps, Volume Exports
- ✅ Production-ready: Mit Error-Handling, Logging, Monitoring
📊 Komponenten (17 Dateien)
Dokumentation (5 Dateien, ~37KB)
- README.md - Hauptdokumentation
- GETTING_STARTED.md - Schritt-für-Schritt Guide
- ARCHITECTURE.md - Detailliertes Design
- SETUP_CHECKLIST.md - Validierungs-Checkliste
- FILES_INDEX.md - Datei-Übersicht
Kestra Workflows (1 Datei)
- backup-provision.yaml - Hauptworkflow (Netbox → Ansible)
Ansible Playbooks (2 Dateien)
- install-borg-client.yaml - Client-Installation
- rclone-backup-server.yaml - Server-Konfiguration
Ansible Templates (8 Dateien)
- borg-backup.sh.j2 - Backup-Ausführung
- pre-backup-docker.sh.j2 - Docker Pre-Backup
- borg-backup.service.j2 - Systemd Service
- borg-backup.timer.j2 - Systemd Timer (03:00)
- backup-status-reporter.sh.j2 - Status Report
- rclone.conf.j2 - S3-Konfiguration
- rclone-sync.service.j2 - Rclone Service
- rclone-sync.timer.j2 - Sync Timer (04:00)
Konfiguration (1 Datei)
- .gitignore - Git Security
🚀 Ablauf (automatisiert)
TÄGLICH AUTOMATISCH:
02:00 ─► Kestra Workflow startet
02:05 ─► Netbox abfragen (TAG: backup=true)
02:30 ─► Ansible deployment auf allen Clients
03:00 ─► Borg Backup startet auf alle Hosts
03:30 ─► Docker Dumps + Pre-Backup Hooks
03:45 ─► SSH zu Backup-Server
04:00 ─► Rclone syncet zu Hetzner S3
04:30 ─► Fertig! Alle Daten offline gesichert
💾 Speicherstruktur
Backup-Server: /backup/repos/{hostname}/
S3 Bucket: mbo-backups/production/repos/{hostname}/
Pro Server ein separates Borg-Repository:
- Deduplizierung innerhalb Server
- Unabhängige Encryption Keys
- Isolierte Backup-Fenster
🔒 Sicherheit
- Encryption: AES-256-CTR (Borg)
- SSH Keys: Ed25519 (per Host)
- SSH Restrictions:
restrict,command=...auf Backup-Server - S3 Credentials: Via Kestra Secrets (nicht im Git)
- Audit Logging: Systemd Journal + File-basiert
📈 Kapazität
Skalierung
- Horizontal: Unbegrenzte Anzahl Hosts (parallele Backups)
- Vertikal: Unbegrenzte Datenmengen (Borg dedupliziert 50-70%)
- S3: Unbegrenzte Speicher (Hetzner)
Performance
- Borg Compression: LZ4 (schnell) oder Zstd (besser)
- Rclone: Multi-threaded (4 parallel)
- Timing: Überlappungsfrei (Backup → Sync)
✨ Features
Vollständig
- Linux/Proxmox Support
- Docker Container Support
- MySQL/PostgreSQL Dumps
- Named Volume Export
- Compose-File Backup
- Systemd Timer Automation
- Error-Handling & Logging
- S3 Replication
- Retention Policy (7d/4w/12m)
Monitoring & Status
- Kestra Execution Tracking
- Systemd Journal Logs
- File-basierte Logs
- Status Reporter Script
- Rclone Sync-Status
Restore
- Lokal vom Backup-Server
- Von S3 (Geo-redundant)
- Selektives Restore (einzelne Dateien)
- Restore Scripts
🎯 Nächste Schritte
1. Lesen (10 min)
- GETTING_STARTED.md durchlesen
2. Vorbereitung (30 min)
- Netbox API Token generieren
- Hetzner S3 Credentials besorgen
- Backup-Server VM erstellen
3. Setup (1-2h)
- Dateien ins Git pushen
- Backup-Server mit Ansible konfigurieren
- Kestra Workflow hochladen
- Secrets in Kestra setzen
4. Testing (30 min)
- Manuelle Workflow-Ausführung
- Backup-Status prüfen
- S3-Sync testen
- Restore-Test
5. Automatisierung (5 min)
- Kestra Timer aktivieren
- Systemd Timers prüfen
- Monitoring konfigurieren
📞 Support & Ressourcen
Dokumentation im Repo
- README.md - Alles Wichtige
- ARCHITECTURE.md - Tiefes Design-Verständnis
- SETUP_CHECKLIST.md - Step-by-Step Validierung
- GETTING_STARTED.md - Schnelleinstieg
Externe Ressourcen
- Borg: https://borgbackup.readthedocs.io
- Kestra: https://kestra.io/docs
- Ansible: https://docs.ansible.com
- Rclone: https://rclone.org/s3/
Troubleshooting
- README.md → Troubleshooting Sektion
- SETUP_CHECKLIST.md → Häufige Probleme
- Logs:
journalctl -u mbo-backup//var/log/mbo-backup/
💡 Tipps zur Anpassung
Alles ist über Jinja2-Templates konfigurierbar:
# Backup-Zeit ändern (aktuell 03:00):
vim borg-backup.timer.j2 → OnCalendar=*-*-* 04:00:00
# Retention-Policy ändern (aktuell 7d/4w/12m):
vim borg-backup.sh.j2 → borg prune
# Rclone Parallelisierung (aktuell 4):
vim rclone-sync.service.j2 → --transfers 8
# Exclude-Listen für Backups:
vim borg-backup.sh.j2 → declare -a EXCLUDE=()
🎓 Training für dein Team
Empfohlene Trainings-Sessions:
-
Architektur-Überblick (30 min)
- Kestra, Ansible, Borg, Rclone
- Datenfluss & Timing
-
Betrieb & Monitoring (45 min)
- Logs anschauen
- Status prüfen
- Troubleshooting
-
Restore-Scenarios (60 min)
- Einzelne Datei restoren
- Docker Volume restoren
- Komplettes Server-Restore
✅ Acceptance Criteria
Das System ist ready, wenn:
- Kestra Workflow läuft täglich
- Systemd Timers sind
enabled - Logs zeigen "Backup completed successfully"
- Borg Repos auf Backup-Server sichtbar
- Rclone syncronisiert zu S3
- Restore-Test erfolgreich durchgeführt
- Team trainiert
📝 Version & Maintenance
Version: 1.0
Release Date: 2026-09-09
Status: Production-Ready
Wartung
- Monatlich: Logs durchsehen
- Quarterly: Restore-Test durchführen
- Jährlich: Architektur-Review
Updates
- Borg neue Version? → Ansible playbook updaten
- Rclone neue Version? → Backup-Server updaten
- Netbox API change? → Kestra workflow updaten
🚀 Go Live Checklist
BEFORE ACTIVATION:
☐ Setup-Checklist 100% completed
☐ Restore-Test erfolgreich
☐ Team trainiert
☐ Alert/Notification konfiguriert
AFTER ACTIVATION:
☐ Erste 3 Nächte Logs monitorieren
☐ S3-Daten validieren
☐ Daily Status Report erstellen
☐ Incident Response Plan erstellen
SUCCESS INDICATORS:
✓ Kestra: Täglich erfolgreiche Ausführung
✓ Borg: Repos wachsen, Deduplizierung aktiv
✓ Rclone: Daten in S3 sichtbar
✓ Logs: Keine Fehler für 7 Tage
🎉 Abschluss
Du hast jetzt ein komplettes, automatisiertes, production-ready Backup-System, das:
- ✅ Vollständig dokumentiert ist
- ✅ Sofort einsatzbereit ist
- ✅ Skalierbar ist
- ✅ Wartbar ist
- ✅ Testbar ist
Viel Erfolg! 🚀
Erstellt von: Claude
Datum: 2026-09-09
Projekt: MBO-Tech-IT Backup-Automation