4.5 KiB
4.5 KiB
Getting Started - Backup-Automation Setup
Schnelleinstieg für MBO-Tech-IT Backup-Automation.
Schritt 1: Repository klonen
git clone https://gitea.mbo-tech-it.de/jonny/backup-automation.git
cd backup-automation
Schritt 2: Secrets vorbereiten
# Erstelle secrets.env Datei (NICHT commiten!)
cat > secrets.env << 'EOF'
export NETBOX_TOKEN="your-netbox-api-token-here"
export NETBOX_URL="https://netbox.mbo-tech-it.de"
export HETZNER_S3_ACCESS_KEY="your-s3-access-key"
export HETZNER_S3_SECRET_KEY="your-s3-secret-key"
export HETZNER_S3_REGION="fsn1"
EOF
chmod 600 secrets.env
source secrets.env
Schritt 3: Backup-Server vorbereiten
# SSH zum zukünftigen Backup-Server
ssh root@backup.mbo-tech-it.de
# Ansible installieren
apt update && apt install -y ansible
# Ansible Playbook ausführen
cd /tmp/backup-automation
ansible-playbook ansible/playbooks/configure-backup-server.yaml \
-e "hetzner_s3_access_key=$HETZNER_S3_ACCESS_KEY" \
-e "hetzner_s3_secret_key=$HETZNER_S3_SECRET_KEY"
Schritt 4: Netbox vorbereiten
In Netbox UI:
- Gehe zu Admin → Extras → Tags
- Klicke Add Tag
- Setze:
- Name:
backup - Slug:
backup - Color: Orange
- Name:
Systeme taggen:
- Gehe zu DCIM → Devices
- Für jedes zu backupendes System:
- Öffne Device
- Unter Tags →
backuphinzufügen - Save
Oder via API:
DEVICE_ID=123
curl -X PATCH https://netbox.mbo-tech-it.de/api/dcim/devices/$DEVICE_ID/ \
-H "Authorization: Token $NETBOX_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tags": [{"name": "backup"}]}'
Schritt 5: Kestra Workflow einrichten
# Workflow hochladen
curl -X POST https://kestra.mbo-tech-it.de/api/v1/flows \
-H "Content-Type: application/yaml" \
-d @kestra/workflows/backup-provision.yaml
# Oder via UI:
# 1. Login zu https://kestra.mbo-tech-it.de
# 2. Create Flow → Upload YAML
# 3. Speichern
Schritt 6: Secrets in Kestra setzen
In Kestra UI:
- Settings → Secrets
- Füge diese Secrets hinzu:
NETBOX_TOKEN = (dein Token) NETBOX_URL = https://netbox.mbo-tech-it.de HETZNER_S3_ACCESS_KEY = (dein S3 Access Key) HETZNER_S3_SECRET_KEY = (dein S3 Secret)
Schritt 7: Erste Test-Ausführung
# Manuell triggern (nicht warten auf 02:00 Uhr):
# In Kestra UI: automation → backup-provision → Execute
# Oder via API:
curl -X POST https://kestra.mbo-tech-it.de/api/v1/namespaces/automation/flows/backup-provision/executions \
-H "Content-Type: application/json"
Logs anschauen:
# SSH auf Backup-Server
journalctl -u mbo-rclone-sync -f
# SSH auf Client
journalctl -u mbo-backup -f
tail -f /var/log/mbo-backup/*.log
Schritt 8: Überprüfe Backup-Status
# Auf Backup-Server
ssh backup@backup.mbo-tech-it.de
# Zeige alle Borg Repos
ls -la /backup/repos/
# Zeige Archive eines Systems
borg list /backup/repos/SERVERNAME
# Zeige Größe & Statistik
borg info /backup/repos/SERVERNAME
Schritt 9: Überprüfe S3-Sync
# SSH auf Backup-Server
ssh root@backup.mbo-tech-it.de
# Manuelle Rclone Sync
sudo -u backup rclone sync --progress \
/backup/repos hetzner:mbo-backups/production/repos
# Überprüfe S3 Bucket
sudo -u backup rclone ls hetzner:mbo-backups/production/repos
Schritt 10: Automatisierung starten
In Kestra UI:
- Öffne automation → backup-provision
- Überprüfe Schedule:
0 2 * * *(täglich 02:00) - Überprüfe, dass Enabled =
true - Speichern
Jetzt läuft das System automatisch täglich! 🚀
Troubleshooting
SSH-Fehler?
# Test SSH vom Client zum Backup-Server
ssh -i /root/.ssh/mbo-backup-key.ed25519 \
backup@backup.mbo-tech-it.de "echo OK"
# Falls Fehler: SSH-Key regenerieren
ssh-keygen -t ed25519 -N '' -f /root/.ssh/mbo-backup-key.ed25519
Borg nicht installiert?
# Manuell auf Host:
apt install -y borgbackup
# Oder via Ansible:
ansible-playbook -i inventory.ini \
ansible/playbooks/install-borg-client.yaml
Rclone S3 Fehler?
# Teste S3 Verbindung
sudo -u backup rclone ls hetzner:mbo-backups/
# Falls Fehler: Config prüfen
sudo -u backup rclone config show hetzner
Nächste Schritte
- Setup-Checkliste durcharbeiten (SETUP_CHECKLIST.md)
- Architektur verstehen (ARCHITECTURE.md)
- Restore-Test durchführen (README.md → Restore-Proceduren)
- Monitoring einrichten (optional)
- Team trainieren
Version: 1.0
Supportiert: Linux, Proxmox, Docker
Fragen? Siehe README.md oder ARCHITECTURE.md