backup-automation/GETTING_STARTED.md

205 lines
4.6 KiB
Markdown

# Getting Started - Backup-Automation Setup
Schnelleinstieg für MBO-Tech-IT Backup-Automation.
## Schritt 1: Repository klonen
```bash
git clone https://gitea.mbo-tech-it.de/jonny/backup-automation.git
cd backup-automation
```
## Schritt 2: Secrets vorbereiten
```bash
# 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
```bash
# SSH zum zukünftigen Backup-Server
ssh root@{BACKUP_SERVER_HOSTNAME}
# 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:
1. Gehe zu **Admin****Extras****Tags**
2. Klicke **Add Tag**
3. Setze:
- **Name**: `backup`
- **Slug**: `backup`
- **Color**: Orange
### Systeme taggen:
1. Gehe zu **DCIM****Devices**
2. Für jedes zu backupendes System:
- Öffne Device
- Unter **Tags**`backup` hinzufügen
- Save
Oder via API:
```bash
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
```bash
# 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. **Settings****Secrets**
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
```bash
# 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:
```bash
# 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
```bash
# Auf Backup-Server
ssh backup@{BACKUP_SERVER_HOSTNAME}
# 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
```bash
# SSH auf Backup-Server
ssh root@{BACKUP_SERVER_HOSTNAME}
# 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 **automation****backup-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?
```bash
# Test SSH vom Client zum Backup-Server
ssh -i /root/.ssh/mbo-backup-key.ed25519 \
backup@{BACKUP_SERVER_HOSTNAME} "echo OK"
# Falls Fehler: SSH-Key regenerieren
ssh-keygen -t ed25519 -N '' -f /root/.ssh/mbo-backup-key.ed25519
```
### Borg nicht installiert?
```bash
# Manuell auf Host:
apt install -y borgbackup
# Oder via Ansible:
ansible-playbook -i inventory.ini \
ansible/playbooks/install-borg-client.yaml
```
### Rclone S3 Fehler?
```bash
# 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