From 39fca9e7cd610bb147f849af8ff7b8f72c976727 Mon Sep 17 00:00:00 2001 From: Grant Slater Date: Sat, 12 Mar 2022 00:19:34 +0000 Subject: [PATCH] community: Add initial backup script --- cookbooks/community/recipes/default.rb | 13 ++++++------ .../templates/default/backup.cron.erb | 20 +++++++++++++++++++ 2 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 cookbooks/community/templates/default/backup.cron.erb diff --git a/cookbooks/community/recipes/default.rb b/cookbooks/community/recipes/default.rb index dece2da1a..5178f1617 100644 --- a/cookbooks/community/recipes/default.rb +++ b/cookbooks/community/recipes/default.rb @@ -105,9 +105,10 @@ execute "discourse_container_mail_receiver_rebuild" do group "root" end -## FIXME -# Backup the backups -# Maybe use /srv/community.openstreetmap.org/shared/web-only/backups/ -# Or https://github.com/discourse/discourse_docker/blob/8b0ae9b4da2f48d62d7a88035018dba403918325/templates/postgres.template.yml#L240 -# and tar of the shared web uploads -# https://github.com/discourse/discourse_docker/pull/611 +## FIXME https://github.com/discourse/discourse_docker/pull/611 +template "/etc/cron.daily/community-backup" do + source "backup.cron.erb" + owner "root" + group "root" + mode "750" +end diff --git a/cookbooks/community/templates/default/backup.cron.erb b/cookbooks/community/templates/default/backup.cron.erb new file mode 100644 index 000000000..6945c3bde --- /dev/null +++ b/cookbooks/community/templates/default/backup.cron.erb @@ -0,0 +1,20 @@ +#!/bin/sh + +# DO NOT EDIT - This file is being maintained by Chef + +T=$(mktemp -d -t -p /var/tmp community.XXXXXXXXXX) +D=$(date +%Y-%m-%d) +B=community-$D.tar.gz + +mkdir $T/commmunity-$D +ln -s /srv/community.openstreetmap.org/docker/containers $T/commmunity-$D/containers +ln -s /srv/community.openstreetmap.org/shared/web-only $T/commmunity-$D/shared-web-only +ln -s /srv/community.openstreetmap.org/shared/data/redis_data $T/commmunity-$D/shared-data-redis_data +ln -s /srv/community.openstreetmap.org/shared/data/postgres_backup $T/commmunity-$D/shared-data-postgres_backup + +export RSYNC_RSH="ssh -ax" + +nice tar --create --numeric-owner --dereference --directory=$T community-$D | nice gzip --rsyncable -9 > $T/$B +nice rsync --preallocate --fuzzy $T/$B backup::backup + +rm -rf $T -- 2.39.5