From ca16aaddd37a3e7524518257f9db7bb942cd83fa Mon Sep 17 00:00:00 2001 From: "Jonny (MBO-Tech-IT)" Date: Wed, 9 Sep 2026 08:44:45 +0000 Subject: [PATCH] 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 --- ARCHITECTURE.md | 2 +- GETTING_STARTED.md | 14 ++++++------ README.md | 26 +++++++++++------------ SETUP_CHECKLIST.md | 6 +++--- kestra/workflows/backup-provision.yaml | 6 +++--- kestra/workflows/install-borg-client.yaml | 2 +- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index e12e8c3..d59049b 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -134,7 +134,7 @@ Das System automatisiert Backups aller in Netbox gekennzeichneten Systeme mit: ▼ ┌──────────────────────────────────────────────────────────────┐ │ BACKUP-SERVER │ -│ SSH: backup@backup.mbo-tech-it.de │ +│ SSH: backup@{BACKUP_SERVER_HOSTNAME} │ │ Repos: /backup/repos/{hostname}/ │ │ • Empfängt Borg Archive via SSH │ │ • Speichert in lokalen Repositories │ diff --git a/GETTING_STARTED.md b/GETTING_STARTED.md index 056f4f7..3a8d42f 100644 --- a/GETTING_STARTED.md +++ b/GETTING_STARTED.md @@ -29,7 +29,7 @@ source secrets.env ```bash # SSH zum zukünftigen Backup-Server -ssh root@backup.mbo-tech-it.de +ssh root@{BACKUP_SERVER_HOSTNAME} # Ansible installieren 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 # 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" \ -d @kestra/workflows/backup-provision.yaml # 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 # 3. Speichern ``` @@ -100,7 +100,7 @@ In Kestra UI: # 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 \ +curl -X POST https://kestra.pve.mbo-tech-it.de/api/v1/namespaces/automation/flows/backup-provision/executions \ -H "Content-Type: application/json" ``` @@ -118,7 +118,7 @@ tail -f /var/log/mbo-backup/*.log ```bash # Auf Backup-Server -ssh backup@backup.mbo-tech-it.de +ssh backup@{BACKUP_SERVER_HOSTNAME} # Zeige alle Borg Repos ls -la /backup/repos/ @@ -134,7 +134,7 @@ borg info /backup/repos/SERVERNAME ```bash # SSH auf Backup-Server -ssh root@backup.mbo-tech-it.de +ssh root@{BACKUP_SERVER_HOSTNAME} # Manuelle Rclone Sync sudo -u backup rclone sync --progress \ @@ -162,7 +162,7 @@ Jetzt läuft das System automatisch täglich! 🚀 ```bash # Test SSH vom Client zum Backup-Server 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 ssh-keygen -t ed25519 -N '' -f /root/.ssh/mbo-backup-key.ed25519 diff --git a/README.md b/README.md index bb8e1af..ed494cb 100644 --- a/README.md +++ b/README.md @@ -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) │ │ • 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) │ │ • Borg Backup-Script läuft täglich um 03:00 │ │ • 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}/ │ │ • Zentrale Borg-Repositories pro Host │ │ • SSH-Zugang nur für borg serve (restricted) │ @@ -71,7 +71,7 @@ cd backup-automation ```bash # SSH auf Backup-Server -ssh root@backup.mbo-tech-it.de +ssh root@{BACKUP_SERVER_HOSTNAME} # Ansible Playbook ausführen ansible-playbook -i localhost, \ @@ -84,7 +84,7 @@ ansible-playbook -i localhost, \ ```bash # 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" \ -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 ```bash -ssh backup@backup.mbo-tech-it.de +ssh backup@{BACKUP_SERVER_HOSTNAME} borg list /backup/repos/SERVER_NAME borg info /backup/repos/SERVER_NAME::(latest-backup) ``` @@ -172,7 +172,7 @@ ssh root@SERVER_NAME # 2. Hole aktuelles Backup vom Backup-Server borg extract --progress \ - backup@backup.mbo-tech-it.de:/backup/repos/SERVER_NAME::(latest) \ + backup@{BACKUP_SERVER_HOSTNAME}:/backup/repos/SERVER_NAME::(latest) \ /etc # 3. Oder aus S3 (falls lokal nicht verfügbar) @@ -183,11 +183,11 @@ rclone ls hetzner:mbo-backups/production/repos/SERVER_NAME/ ```bash # 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 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 ``` @@ -195,7 +195,7 @@ borg extract \ ```bash # Auf Backup-Server: -ssh backup@backup.mbo-tech-it.de +ssh backup@{BACKUP_SERVER_HOSTNAME} # Finde den Export ls -la /var/backups/docker/*/ @@ -216,7 +216,7 @@ docker run --rm \ ```bash # Test SSH-Connection: 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-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 # Backup-Server: -ssh backup@backup.mbo-tech-it.de +ssh backup@{BACKUP_SERVER_HOSTNAME} borg check -v /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 # 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 ``` --- diff --git a/SETUP_CHECKLIST.md b/SETUP_CHECKLIST.md index b226768..5c21846 100644 --- a/SETUP_CHECKLIST.md +++ b/SETUP_CHECKLIST.md @@ -6,7 +6,7 @@ - [ ] 2+ CPUs - [ ] 4+ GB RAM - [ ] Großes Datenvolume (/backup mit genug Platz) - - [ ] Hostname: `backup.mbo-tech-it.de` + - [ ] Hostname: `{BACKUP_SERVER_HOSTNAME}` - [ ] Hetzner S3 Credentials besorgen - [ ] Access Key ID @@ -85,7 +85,7 @@ - [ ] Kestra-Workflow YAML ins System laden: ```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" \ -d @kestra/workflows/backup-provision.yaml ``` @@ -130,7 +130,7 @@ - [ ] Auf Backup-Server Repository prüfen: ```bash - ssh backup@backup.mbo-tech-it.de + ssh backup@{BACKUP_SERVER_HOSTNAME} borg list /backup/repos/TEST_SERVER borg info /backup/repos/TEST_SERVER ``` diff --git a/kestra/workflows/backup-provision.yaml b/kestra/workflows/backup-provision.yaml index 72814d6..9064c86 100644 --- a/kestra/workflows/backup-provision.yaml +++ b/kestra/workflows/backup-provision.yaml @@ -86,7 +86,7 @@ tasks: inventory += """ [backup_clients:vars] 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 """ @@ -112,7 +112,7 @@ backup_repo_base=/backup/repos ansible-playbook \ -i {{ vars.ansible_inventory_file }} \ 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" \ --diff @@ -128,7 +128,7 @@ backup_repo_base=/backup/repos cd /tmp/backup-automation # 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 # Hole Device-Liste aus Netbox diff --git a/kestra/workflows/install-borg-client.yaml b/kestra/workflows/install-borg-client.yaml index 55a145c..9f85783 100644 --- a/kestra/workflows/install-borg-client.yaml +++ b/kestra/workflows/install-borg-client.yaml @@ -5,7 +5,7 @@ become: yes vars: - backup_repo_server: "backup.mbo-tech-it.de" + backup_repo_server: "{BACKUP_SERVER_HOSTNAME}" backup_repo_base: "/backup/repos" backup_user: "backup" backup_ssh_key_path: "/root/.ssh/mbo-backup-key.ed25519"