diff --git a/host_vars/racnoss.kde.org.yml b/host_vars/racnoss.kde.org.yml deleted file mode 100644 index 568394f..0000000 --- a/host_vars/racnoss.kde.org.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -backup_directory: backups -hetzner_backup_host: pirate diff --git a/host_vars/racnoss.kde.org/vars.yml b/host_vars/racnoss.kde.org/vars.yml new file mode 100644 index 0000000..8115522 --- /dev/null +++ b/host_vars/racnoss.kde.org/vars.yml @@ -0,0 +1,5 @@ +--- +backup_directory: backups +hetzner_backup_host: pirate +backup_apt_dependencies: [borgbackup] +backup_borg_passphrase: "{{vault_backup_borg_passphrase}}" diff --git a/host_vars/racnoss.kde.org/vault.yml b/host_vars/racnoss.kde.org/vault.yml new file mode 100644 index 0000000..074250e --- /dev/null +++ b/host_vars/racnoss.kde.org/vault.yml @@ -0,0 +1,8 @@ +$ANSIBLE_VAULT;1.1;AES256 +66653361373934633535323064303237366361353265633836663966386437613166613230323861 +3166646563393964336138666431643438303532323937630a326532303138323730353635356530 +66323962386236326165373064393431333132343137663061366538656434343436633164613761 +3333373438353762370a383631396663626233366535313531346432336133333830366564376664 +66383535333064623131326431316532353065343838613163366331633337363765646635303234 +39626232326332373961613461626163646535656632386261303663643433663336643832663733 +373538326635316430653334643037346239 diff --git a/roles/kde-backup/templates/backup-racnoss.sh b/roles/kde-backup/templates/backup-racnoss.sh index 3a21048..ff1097b 100755 --- a/roles/kde-backup/templates/backup-racnoss.sh +++ b/roles/kde-backup/templates/backup-racnoss.sh @@ -1,19 +1,50 @@ LOCATION=/root/{{backup_directory}} find $LOCATION -name "srv.*.tar.xz" -mtime +2 | xargs rm -f # Backup mirrors listing mb -b download export --format=postgresql > $LOCATION/mirrors-download.`date +%w`.sql mb -b files export --format=postgresql > $LOCATION/mirrors-files.`date +%w`.sql # Backup home directories tar -cJf $LOCATION/homes.`date +%w`.tar.xz -C / --exclude=home/marble/sentinel2 --exclude=home/marble/newstuff-tmp --exclude=home/neonarchives/user-moved-2017-04-11 --exclude=home/akademy/2017 home/ # Backup the CDN tar -cJf $LOCATION/srv-cdn.`date +%w`.tar.xz -C / srv/www/cdn.kde.org/ # Backup configuration and list of installed packages tar -czf $LOCATION/etc.`date +%w`.tgz -C / etc/ tar -czf $LOCATION/crontabs.`date +%w`.tgz -C / var/spool/cron/ dpkg -l > $LOCATION/dpkg.`date +%w` +# Transfer traditional backups to Hetzner Backup Space lftp -f ~/bin/backup-options + +# Prepare to run Borg backups +export BORG_PASSPHRASE='{{backup_borg_passphrase}}' + +{% set backup_creds = hetzner_backup_creds[hetzner_backup_host] %} + +BORG_SERVER="ssh://{{backup_creds.username}}@{{backup_creds.username}}.your-backup.de:23" + +# Backup Distribute +export BORG_REPO="$BORG_SERVER/./borg-backups/distribute" +borg create --compression none --exclude-caches ::'{hostname}-distribute-{now}' /srv/www/distribute.kde.org/ + +# Backup Maps +export BORG_REPO="$BORG_SERVER/./borg-backups/maps" +borg create --compression none --exclude-caches ::'{hostname}-maps-{now}' /srv/www/maps.kde.org/ + +# Backup Neon +export BORG_REPO="$BORG_SERVER/./borg-backups/neon-services" +borg create --compression none --exclude-caches ::'{hostname}-neon-services-{now}' /srv/neon-services/ + +# Cleanup old Borg backups +# We keep: 7 days, 4 weeks and 6 month snapshots +export BORG_REPO="$BORG_SERVER/./borg-backups/distribute" +borg prune --prefix '{hostname}-' --keep-daily 7 --keep-weekly 4 --keep-monthly 6 + +export BORG_REPO="$BORG_SERVER/./borg-backups/maps" +borg prune --prefix '{hostname}-' --keep-daily 7 --keep-weekly 4 --keep-monthly 6 + +export BORG_REPO="$BORG_SERVER/./borg-backups/neon-services" +borg prune --prefix '{hostname}-' --keep-daily 7 --keep-weekly 4 --keep-monthly 6