Set Backup-Server Hostname: backup01.mbotechit.de
Ersetze alle {BACKUP_SERVER_HOSTNAME} Platzhalter mit dem finalen Hostname.
Aktualisiert:
- Kestra Workflows
- Dokumentation (README, GETTING_STARTED, ARCHITECTURE, SETUP_CHECKLIST)
- Ansible Inventory-Generierung
This commit is contained in:
parent
418da4356b
commit
b3ab22fe4e
|
|
@ -134,7 +134,7 @@ Das System automatisiert Backups aller in Netbox gekennzeichneten Systeme mit:
|
||||||
▼
|
▼
|
||||||
┌──────────────────────────────────────────────────────────────┐
|
┌──────────────────────────────────────────────────────────────┐
|
||||||
│ BACKUP-SERVER │
|
│ BACKUP-SERVER │
|
||||||
│ SSH: backup@{BACKUP_SERVER_HOSTNAME} │
|
│ SSH: backup@backup01.mbotechit.de │
|
||||||
│ 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 │
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ source secrets.env
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# SSH zum zukünftigen Backup-Server
|
# SSH zum zukünftigen Backup-Server
|
||||||
ssh root@{BACKUP_SERVER_HOSTNAME}
|
ssh root@backup01.mbotechit.de
|
||||||
|
|
||||||
# Ansible installieren
|
# Ansible installieren
|
||||||
apt update && apt install -y ansible
|
apt update && apt install -y ansible
|
||||||
|
|
@ -134,7 +134,7 @@ tail -f /var/log/mbo-backup/*.log
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Auf Backup-Server
|
# Auf Backup-Server
|
||||||
ssh backup@{BACKUP_SERVER_HOSTNAME}
|
ssh backup@backup01.mbotechit.de
|
||||||
|
|
||||||
# Zeige alle Borg Repos
|
# Zeige alle Borg Repos
|
||||||
ls -la /backup/repos/
|
ls -la /backup/repos/
|
||||||
|
|
@ -150,7 +150,7 @@ borg info /backup/repos/SERVERNAME
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# SSH auf Backup-Server
|
# SSH auf Backup-Server
|
||||||
ssh root@{BACKUP_SERVER_HOSTNAME}
|
ssh root@backup01.mbotechit.de
|
||||||
|
|
||||||
# Manuelle Rclone Sync
|
# Manuelle Rclone Sync
|
||||||
sudo -u backup rclone sync --progress \
|
sudo -u backup rclone sync --progress \
|
||||||
|
|
@ -178,7 +178,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_SERVER_HOSTNAME} "echo OK"
|
backup@backup01.mbotechit.de "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
|
||||||
|
|
|
||||||
20
README.md
20
README.md
|
|
@ -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_SERVER_HOSTNAME} │
|
│ • SSH zu Backup-Server: backup@backup01.mbotechit.de │
|
||||||
└─────────────────────────────────────────────────────────────┘
|
└─────────────────────────────────────────────────────────────┘
|
||||||
↓
|
↓
|
||||||
┌─────────────────────────────────────────────────────────────┐
|
┌─────────────────────────────────────────────────────────────┐
|
||||||
│ Backup-Server ({BACKUP_SERVER_HOSTNAME}) │
|
│ Backup-Server (backup01.mbotechit.de) │
|
||||||
│ 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_SERVER_HOSTNAME}
|
ssh root@backup01.mbotechit.de
|
||||||
|
|
||||||
# Ansible Playbook ausführen
|
# Ansible Playbook ausführen
|
||||||
ansible-playbook -i localhost, \
|
ansible-playbook -i localhost, \
|
||||||
|
|
@ -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_SERVER_HOSTNAME}
|
ssh backup@backup01.mbotechit.de
|
||||||
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_SERVER_HOSTNAME}:/backup/repos/SERVER_NAME::(latest) \
|
backup@backup01.mbotechit.de:/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_SERVER_HOSTNAME}:/backup/repos/SERVER_NAME
|
borg list backup@backup01.mbotechit.de:/backup/repos/SERVER_NAME
|
||||||
|
|
||||||
# Extrahiere einzelne Datei
|
# Extrahiere einzelne Datei
|
||||||
borg extract \
|
borg extract \
|
||||||
backup@{BACKUP_SERVER_HOSTNAME}:/backup/repos/SERVER_NAME::archive-name \
|
backup@backup01.mbotechit.de:/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_SERVER_HOSTNAME}
|
ssh backup@backup01.mbotechit.de
|
||||||
|
|
||||||
# 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_SERVER_HOSTNAME} "echo OK"
|
backup@backup01.mbotechit.de "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_SERVER_HOSTNAME}
|
ssh backup@backup01.mbotechit.de
|
||||||
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
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -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_SERVER_HOSTNAME}`
|
- [ ] Hostname: `backup01.mbotechit.de`
|
||||||
|
|
||||||
- [ ] Hetzner S3 Credentials besorgen
|
- [ ] Hetzner S3 Credentials besorgen
|
||||||
- [ ] Access Key ID
|
- [ ] Access Key ID
|
||||||
|
|
@ -130,7 +130,7 @@
|
||||||
|
|
||||||
- [ ] Auf Backup-Server Repository prüfen:
|
- [ ] Auf Backup-Server Repository prüfen:
|
||||||
```bash
|
```bash
|
||||||
ssh backup@{BACKUP_SERVER_HOSTNAME}
|
ssh backup@backup01.mbotechit.de
|
||||||
borg list /backup/repos/TEST_SERVER
|
borg list /backup/repos/TEST_SERVER
|
||||||
borg info /backup/repos/TEST_SERVER
|
borg info /backup/repos/TEST_SERVER
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,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_SERVER_HOSTNAME}
|
backup_repo_server=backup01.mbotechit.de
|
||||||
backup_repo_base=/backup/repos
|
backup_repo_base=/backup/repos
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -114,7 +114,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_SERVER_HOSTNAME}" \
|
-e "backup_repo_server=backup01.mbotechit.de" \
|
||||||
-e "backup_repo_base=/backup/repos" \
|
-e "backup_repo_base=/backup/repos" \
|
||||||
--diff
|
--diff
|
||||||
|
|
||||||
|
|
@ -130,7 +130,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_SERVER_HOSTNAME} << 'EOF'
|
ssh -i ~/.ssh/id_ed25519 backup@backup01.mbotechit.de << 'EOF'
|
||||||
source /home/backup/.bashrc
|
source /home/backup/.bashrc
|
||||||
|
|
||||||
# Hole Device-Liste aus Netbox (nur Systems mit auto-backup TAG)
|
# Hole Device-Liste aus Netbox (nur Systems mit auto-backup TAG)
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
vars:
|
vars:
|
||||||
backup_repo_server: "{BACKUP_SERVER_HOSTNAME}"
|
backup_repo_server: "backup01.mbotechit.de"
|
||||||
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"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue