Fix: Nur reale URLs verwenden (kestra.pve.mbo-tech-it.de, gitea.mbo-tech-it.de, netbox.mbo-tech-it.de)

Backup-Server Hostname bleibt variable {BACKUP_SERVER_HOSTNAME} bis erstellt
This commit is contained in:
Jonny (MBO-Tech-IT) 2026-09-09 08:44:45 +00:00
parent 9f8dda52d3
commit ca16aaddd3
No known key found for this signature in database
6 changed files with 28 additions and 28 deletions

View File

@ -134,7 +134,7 @@ Das System automatisiert Backups aller in Netbox gekennzeichneten Systeme mit:
┌──────────────────────────────────────────────────────────────┐ ┌──────────────────────────────────────────────────────────────┐
│ BACKUP-SERVER │ │ BACKUP-SERVER │
│ SSH: backup@backup.mbo-tech-it.de │ SSH: backup@{BACKUP_SERVER_HOSTNAME}
│ Repos: /backup/repos/{hostname}/ │ │ Repos: /backup/repos/{hostname}/ │
│ • Empfängt Borg Archive via SSH │ │ • Empfängt Borg Archive via SSH │
│ • Speichert in lokalen Repositories │ │ • Speichert in lokalen Repositories │

View File

@ -29,7 +29,7 @@ source secrets.env
```bash ```bash
# SSH zum zukünftigen Backup-Server # SSH zum zukünftigen Backup-Server
ssh root@backup.mbo-tech-it.de ssh root@{BACKUP_SERVER_HOSTNAME}
# Ansible installieren # Ansible installieren
apt update && apt install -y ansible apt update && apt install -y ansible
@ -71,12 +71,12 @@ curl -X PATCH https://netbox.mbo-tech-it.de/api/dcim/devices/$DEVICE_ID/ \
```bash ```bash
# Workflow hochladen # Workflow hochladen
curl -X POST https://kestra.mbo-tech-it.de/api/v1/flows \ curl -X POST https://kestra.pve.mbo-tech-it.de/api/v1/flows \
-H "Content-Type: application/yaml" \ -H "Content-Type: application/yaml" \
-d @kestra/workflows/backup-provision.yaml -d @kestra/workflows/backup-provision.yaml
# Oder via UI: # Oder via UI:
# 1. Login zu https://kestra.mbo-tech-it.de # 1. Login zu https://kestra.pve.mbo-tech-it.de
# 2. Create Flow → Upload YAML # 2. Create Flow → Upload YAML
# 3. Speichern # 3. Speichern
``` ```
@ -100,7 +100,7 @@ In Kestra UI:
# In Kestra UI: automation → backup-provision → Execute # In Kestra UI: automation → backup-provision → Execute
# Oder via API: # Oder via API:
curl -X POST https://kestra.mbo-tech-it.de/api/v1/namespaces/automation/flows/backup-provision/executions \ curl -X POST https://kestra.pve.mbo-tech-it.de/api/v1/namespaces/automation/flows/backup-provision/executions \
-H "Content-Type: application/json" -H "Content-Type: application/json"
``` ```
@ -118,7 +118,7 @@ tail -f /var/log/mbo-backup/*.log
```bash ```bash
# Auf Backup-Server # Auf Backup-Server
ssh backup@backup.mbo-tech-it.de ssh backup@{BACKUP_SERVER_HOSTNAME}
# Zeige alle Borg Repos # Zeige alle Borg Repos
ls -la /backup/repos/ ls -la /backup/repos/
@ -134,7 +134,7 @@ borg info /backup/repos/SERVERNAME
```bash ```bash
# SSH auf Backup-Server # SSH auf Backup-Server
ssh root@backup.mbo-tech-it.de ssh root@{BACKUP_SERVER_HOSTNAME}
# Manuelle Rclone Sync # Manuelle Rclone Sync
sudo -u backup rclone sync --progress \ sudo -u backup rclone sync --progress \
@ -162,7 +162,7 @@ Jetzt läuft das System automatisch täglich! 🚀
```bash ```bash
# Test SSH vom Client zum Backup-Server # Test SSH vom Client zum Backup-Server
ssh -i /root/.ssh/mbo-backup-key.ed25519 \ ssh -i /root/.ssh/mbo-backup-key.ed25519 \
backup@backup.mbo-tech-it.de "echo OK" backup@{BACKUP_SERVER_HOSTNAME} "echo OK"
# Falls Fehler: SSH-Key regenerieren # Falls Fehler: SSH-Key regenerieren
ssh-keygen -t ed25519 -N '' -f /root/.ssh/mbo-backup-key.ed25519 ssh-keygen -t ed25519 -N '' -f /root/.ssh/mbo-backup-key.ed25519

View File

@ -6,7 +6,7 @@ Integriertes Backup-System basierend auf Netbox-Inventar, Kestra-Automation, Bor
``` ```
┌─────────────────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────────────────┐
│ Kestra (kestra.mbo-tech-it.de) │ │ Kestra (kestra.pve.mbo-tech-it.de) │
│ • Tägliche Abfrage von Netbox (TAG: backup=true) │ │ • Tägliche Abfrage von Netbox (TAG: backup=true) │
│ • Trigger Ansible auf allen markierten Hosts │ │ • Trigger Ansible auf allen markierten Hosts │
└─────────────────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────────────┘
@ -21,11 +21,11 @@ Integriertes Backup-System basierend auf Netbox-Inventar, Kestra-Automation, Bor
│ Backup-Clients (alle gekennzeichneten Systeme) │ │ Backup-Clients (alle gekennzeichneten Systeme) │
│ • Borg Backup-Script läuft täglich um 03:00 │ │ • Borg Backup-Script läuft täglich um 03:00 │
│ • Docker Pre-Backup Hooks (MySQL, PostgreSQL, Volumes) │ │ • Docker Pre-Backup Hooks (MySQL, PostgreSQL, Volumes) │
│ • SSH zu Backup-Server: backup@backup.mbo-tech-it.de │ • SSH zu Backup-Server: backup@{BACKUP_SERVER_HOSTNAME}
└─────────────────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────────────────┐
│ Backup-Server (backup.mbo-tech-it.de) │ │ Backup-Server ({BACKUP_SERVER_HOSTNAME}) │
│ Struktur: /backup/repos/{hostname}/ │ │ Struktur: /backup/repos/{hostname}/ │
│ • Zentrale Borg-Repositories pro Host │ │ • Zentrale Borg-Repositories pro Host │
│ • SSH-Zugang nur für borg serve (restricted) │ │ • SSH-Zugang nur für borg serve (restricted) │
@ -71,7 +71,7 @@ cd backup-automation
```bash ```bash
# SSH auf Backup-Server # SSH auf Backup-Server
ssh root@backup.mbo-tech-it.de ssh root@{BACKUP_SERVER_HOSTNAME}
# Ansible Playbook ausführen # Ansible Playbook ausführen
ansible-playbook -i localhost, \ ansible-playbook -i localhost, \
@ -84,7 +84,7 @@ ansible-playbook -i localhost, \
```bash ```bash
# Workflow in Kestra hochladen # Workflow in Kestra hochladen
curl -X POST https://kestra.mbo-tech-it.de/api/v1/flows \ curl -X POST https://kestra.pve.mbo-tech-it.de/api/v1/flows \
-H "Content-Type: application/yaml" \ -H "Content-Type: application/yaml" \
-d @kestra/workflows/backup-provision.yaml -d @kestra/workflows/backup-provision.yaml
``` ```
@ -155,7 +155,7 @@ sudo -u backup rclone sync --progress /backup/repos hetzner:mbo-backups/producti
### Borg Repository Status ### Borg Repository Status
```bash ```bash
ssh backup@backup.mbo-tech-it.de ssh backup@{BACKUP_SERVER_HOSTNAME}
borg list /backup/repos/SERVER_NAME borg list /backup/repos/SERVER_NAME
borg info /backup/repos/SERVER_NAME::(latest-backup) borg info /backup/repos/SERVER_NAME::(latest-backup)
``` ```
@ -172,7 +172,7 @@ ssh root@SERVER_NAME
# 2. Hole aktuelles Backup vom Backup-Server # 2. Hole aktuelles Backup vom Backup-Server
borg extract --progress \ borg extract --progress \
backup@backup.mbo-tech-it.de:/backup/repos/SERVER_NAME::(latest) \ backup@{BACKUP_SERVER_HOSTNAME}:/backup/repos/SERVER_NAME::(latest) \
/etc /etc
# 3. Oder aus S3 (falls lokal nicht verfügbar) # 3. Oder aus S3 (falls lokal nicht verfügbar)
@ -183,11 +183,11 @@ rclone ls hetzner:mbo-backups/production/repos/SERVER_NAME/
```bash ```bash
# Liste Backup-Archive # Liste Backup-Archive
borg list backup@backup.mbo-tech-it.de:/backup/repos/SERVER_NAME borg list backup@{BACKUP_SERVER_HOSTNAME}:/backup/repos/SERVER_NAME
# Extrahiere einzelne Datei # Extrahiere einzelne Datei
borg extract \ borg extract \
backup@backup.mbo-tech-it.de:/backup/repos/SERVER_NAME::archive-name \ backup@{BACKUP_SERVER_HOSTNAME}:/backup/repos/SERVER_NAME::archive-name \
path/to/file path/to/file
``` ```
@ -195,7 +195,7 @@ borg extract \
```bash ```bash
# Auf Backup-Server: # Auf Backup-Server:
ssh backup@backup.mbo-tech-it.de ssh backup@{BACKUP_SERVER_HOSTNAME}
# Finde den Export # Finde den Export
ls -la /var/backups/docker/*/ ls -la /var/backups/docker/*/
@ -216,7 +216,7 @@ docker run --rm \
```bash ```bash
# Test SSH-Connection: # Test SSH-Connection:
ssh -i /root/.ssh/mbo-backup-key.ed25519 \ ssh -i /root/.ssh/mbo-backup-key.ed25519 \
backup@backup.mbo-tech-it.de "echo OK" backup@{BACKUP_SERVER_HOSTNAME} "echo OK"
# SSH-Keys neu generieren (falls nötig): # SSH-Keys neu generieren (falls nötig):
ssh-keygen -t ed25519 -N '' -f /root/.ssh/mbo-backup-key.ed25519 ssh-keygen -t ed25519 -N '' -f /root/.ssh/mbo-backup-key.ed25519
@ -226,7 +226,7 @@ ssh-keygen -t ed25519 -N '' -f /root/.ssh/mbo-backup-key.ed25519
```bash ```bash
# Backup-Server: # Backup-Server:
ssh backup@backup.mbo-tech-it.de ssh backup@{BACKUP_SERVER_HOSTNAME}
borg check -v /backup/repos/SERVER_NAME borg check -v /backup/repos/SERVER_NAME
borg repair /backup/repos/SERVER_NAME borg repair /backup/repos/SERVER_NAME
``` ```
@ -253,7 +253,7 @@ sudo -u backup rclone sync --progress --log-level DEBUG \
Settings → Logs → backup-provision Settings → Logs → backup-provision
# Manuelle Test: # Manuelle Test:
curl -X GET https://kestra.mbo-tech-it.de/api/v1/namespaces/automation/flows curl -X GET https://kestra.pve.mbo-tech-it.de/api/v1/namespaces/automation/flows
``` ```
--- ---

View File

@ -6,7 +6,7 @@
- [ ] 2+ CPUs - [ ] 2+ CPUs
- [ ] 4+ GB RAM - [ ] 4+ GB RAM
- [ ] Großes Datenvolume (/backup mit genug Platz) - [ ] Großes Datenvolume (/backup mit genug Platz)
- [ ] Hostname: `backup.mbo-tech-it.de` - [ ] Hostname: `{BACKUP_SERVER_HOSTNAME}`
- [ ] Hetzner S3 Credentials besorgen - [ ] Hetzner S3 Credentials besorgen
- [ ] Access Key ID - [ ] Access Key ID
@ -85,7 +85,7 @@
- [ ] Kestra-Workflow YAML ins System laden: - [ ] Kestra-Workflow YAML ins System laden:
```bash ```bash
curl -X POST https://kestra.mbo-tech-it.de/api/v1/flows \ curl -X POST https://kestra.pve.mbo-tech-it.de/api/v1/flows \
-H "Content-Type: application/yaml" \ -H "Content-Type: application/yaml" \
-d @kestra/workflows/backup-provision.yaml -d @kestra/workflows/backup-provision.yaml
``` ```
@ -130,7 +130,7 @@
- [ ] Auf Backup-Server Repository prüfen: - [ ] Auf Backup-Server Repository prüfen:
```bash ```bash
ssh backup@backup.mbo-tech-it.de ssh backup@{BACKUP_SERVER_HOSTNAME}
borg list /backup/repos/TEST_SERVER borg list /backup/repos/TEST_SERVER
borg info /backup/repos/TEST_SERVER borg info /backup/repos/TEST_SERVER
``` ```

View File

@ -86,7 +86,7 @@ tasks:
inventory += """ inventory += """
[backup_clients:vars] [backup_clients:vars]
ansible_python_interpreter=/usr/bin/python3 ansible_python_interpreter=/usr/bin/python3
backup_repo_server=backup.mbo-tech-it.de backup_repo_server={BACKUP_SERVER_HOSTNAME}
backup_repo_base=/backup/repos backup_repo_base=/backup/repos
""" """
@ -112,7 +112,7 @@ backup_repo_base=/backup/repos
ansible-playbook \ ansible-playbook \
-i {{ vars.ansible_inventory_file }} \ -i {{ vars.ansible_inventory_file }} \
ansible/playbooks/install-borg-client.yaml \ ansible/playbooks/install-borg-client.yaml \
-e "backup_repo_server=backup.mbo-tech-it.de" \ -e "backup_repo_server={BACKUP_SERVER_HOSTNAME}" \
-e "backup_repo_base=/backup/repos" \ -e "backup_repo_base=/backup/repos" \
--diff --diff
@ -128,7 +128,7 @@ backup_repo_base=/backup/repos
cd /tmp/backup-automation cd /tmp/backup-automation
# SSH zum Backup-Server # SSH zum Backup-Server
ssh -i ~/.ssh/id_ed25519 backup@backup.mbo-tech-it.de << 'EOF' ssh -i ~/.ssh/id_ed25519 backup@{BACKUP_SERVER_HOSTNAME} << 'EOF'
source /home/backup/.bashrc source /home/backup/.bashrc
# Hole Device-Liste aus Netbox # Hole Device-Liste aus Netbox

View File

@ -5,7 +5,7 @@
become: yes become: yes
vars: vars:
backup_repo_server: "backup.mbo-tech-it.de" backup_repo_server: "{BACKUP_SERVER_HOSTNAME}"
backup_repo_base: "/backup/repos" backup_repo_base: "/backup/repos"
backup_user: "backup" backup_user: "backup"
backup_ssh_key_path: "/root/.ssh/mbo-backup-key.ed25519" backup_ssh_key_path: "/root/.ssh/mbo-backup-key.ed25519"