backup-automation/GETTING_STARTED.md

4.9 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/claude/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@backup01.mbotechit.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 TAGs vorbereiten

TAGs in Netbox erstellen

Admin → Customization → Tags und folgende TAGs anlegen:

Name Slug Farbe
auto-backup auto-backup 🟢
env:prod env-prod 🔴
env:staging env-staging 🟡
env:dev env-dev 🔵

Erforderlich: Mindestens auto-backup
Optional: Umgebungs-TAGs, Tenant-TAGs, etc. (siehe docs/NETBOX-TAGS.md)

Systeme taggen

DCIM → Devices → Gerät öffnen → Tags hinzufügen

Beispiel Production-Server:

✓ auto-backup  (erforderlich!)
✓ env:prod     (optional)

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": "auto-backup"},
      {"name": "env:prod"}
    ]
  }'

Details zur TAG-Struktur: Siehe docs/NETBOX-TAGS.md

Schritt 5: Kestra Workflow einrichten

# Workflow hochladen
curl -X POST https://kestra.pve.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.pve.mbo-tech-it.de
# 2. Create Flow → Upload YAML
# 3. Speichern

Schritt 6: Secrets in Kestra setzen

In Kestra UI:

  1. SettingsSecrets
  2. 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.pve.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@backup01.mbotechit.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@backup01.mbotechit.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:

  1. Öffne automationbackup-provision
  2. Überprüfe Schedule: 0 2 * * * (täglich 02:00)
  3. Überprüfe, dass Enabled = true
  4. 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@backup01.mbotechit.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