Add upgrade, restart-overnight-backups scripts for generic backup app
This commit is contained in:
parent
067c02e965
commit
0b5f6234ad
|
@ -104,7 +104,7 @@ def deploy_backup_app(c, deploy, envname, mkvirtualenv=True, user='rattail',
|
||||||
# config
|
# config
|
||||||
c.sudo("bash -l -c 'workon {} && cdvirtualenv && rattail make-appdir'".format(envname), user=user)
|
c.sudo("bash -l -c 'workon {} && cdvirtualenv && rattail make-appdir'".format(envname), user=user)
|
||||||
# note, config is owned by root regardless of `user` - since we always run backups as root
|
# note, config is owned by root regardless of `user` - since we always run backups as root
|
||||||
deploy(c, config, os.path.join(envpath, 'app/rattail.conf'), owner='root', mode='0600', use_sudo=True, context=context)
|
deploy(c, config, os.path.join(envpath, 'app/rattail.conf'), owner='root:{}'.format(user), mode='0640', use_sudo=True, context=context)
|
||||||
c.sudo("bash -l -c 'workon {} && cdvirtualenv && bin/rattail -c app/rattail.conf make-config -T quiet -O app/'".format(envname), user=user)
|
c.sudo("bash -l -c 'workon {} && cdvirtualenv && bin/rattail -c app/rattail.conf make-config -T quiet -O app/'".format(envname), user=user)
|
||||||
c.sudo("bash -l -c 'workon {} && cdvirtualenv && bin/rattail -c app/rattail.conf make-config -T silent -O app/'".format(envname), user=user)
|
c.sudo("bash -l -c 'workon {} && cdvirtualenv && bin/rattail -c app/rattail.conf make-config -T silent -O app/'".format(envname), user=user)
|
||||||
|
|
||||||
|
@ -156,6 +156,9 @@ def deploy_backup_app(c, deploy, envname, mkvirtualenv=True, user='rattail',
|
||||||
deploy_generic(c, 'backup/luigi-logging.conf.mako', '{}/app/luigi/luigi-logging.conf'.format(envpath),
|
deploy_generic(c, 'backup/luigi-logging.conf.mako', '{}/app/luigi/luigi-logging.conf'.format(envpath),
|
||||||
owner=user, use_sudo=True, context={'envpath': envpath})
|
owner=user, use_sudo=True, context={'envpath': envpath})
|
||||||
|
|
||||||
|
# needed for restarting luigi tasks
|
||||||
|
apt.install(c, 'at')
|
||||||
|
|
||||||
# app/luigitasks/overnight.py - should define the OvernightBackups wrapper task
|
# app/luigitasks/overnight.py - should define the OvernightBackups wrapper task
|
||||||
path = '{}/luigi-overnight.py'.format(envname)
|
path = '{}/luigi-overnight.py'.format(envname)
|
||||||
if deploy.local_exists(path):
|
if deploy.local_exists(path):
|
||||||
|
@ -169,6 +172,10 @@ def deploy_backup_app(c, deploy, envname, mkvirtualenv=True, user='rattail',
|
||||||
deploy_generic(c, 'backup/overnight-backups.sh.mako', '{}/app/overnight-backups.sh'.format(envpath),
|
deploy_generic(c, 'backup/overnight-backups.sh.mako', '{}/app/overnight-backups.sh'.format(envpath),
|
||||||
owner=user, mode='0755', use_sudo=True, context={'envpath': envpath})
|
owner=user, mode='0755', use_sudo=True, context={'envpath': envpath})
|
||||||
|
|
||||||
|
# app/restart-overnight-backups.sh - generic script to restart OvernightBackups task
|
||||||
|
deploy_generic(c, 'backup/restart-overnight-backups.sh.mako', '{}/app/restart-overnight-backups.sh'.format(envpath),
|
||||||
|
owner=user, mode='0755', use_sudo=True, context={'envpath': envpath})
|
||||||
|
|
||||||
# supervisor / luigid
|
# supervisor / luigid
|
||||||
apt.install(c, 'supervisor')
|
apt.install(c, 'supervisor')
|
||||||
deploy_generic(c, 'backup/supervisor.conf.mako', '/etc/supervisor/conf.d/backup.conf',
|
deploy_generic(c, 'backup/supervisor.conf.mako', '/etc/supervisor/conf.d/backup.conf',
|
||||||
|
@ -178,6 +185,11 @@ def deploy_backup_app(c, deploy, envname, mkvirtualenv=True, user='rattail',
|
||||||
c.sudo('supervisorctl update')
|
c.sudo('supervisorctl update')
|
||||||
c.sudo('supervisorctl start backup:')
|
c.sudo('supervisorctl start backup:')
|
||||||
|
|
||||||
|
# upgrade script
|
||||||
|
if install_rattail:
|
||||||
|
deploy_generic(c, 'backup/upgrade.sh.mako', '{}/app/upgrade.sh'.format(envpath),
|
||||||
|
owner=user, mode='0755', use_sudo=True, context={'envpath': envpath, 'user': user})
|
||||||
|
|
||||||
# backup-everything script
|
# backup-everything script
|
||||||
if install_rattail or everything:
|
if install_rattail or everything:
|
||||||
everything_context = dict(context)
|
everything_context = dict(context)
|
||||||
|
|
|
@ -2,19 +2,16 @@
|
||||||
|
|
||||||
if [ "$1" = "-v" -o "$1" = "--verbose" ]; then
|
if [ "$1" = "-v" -o "$1" = "--verbose" ]; then
|
||||||
VERBOSE='--verbose'
|
VERBOSE='--verbose'
|
||||||
QUIET=
|
|
||||||
PROGRESS='--progress'
|
PROGRESS='--progress'
|
||||||
CONFIG='/srv/envs/${envname}/app/rattail.conf'
|
CONFIG='/srv/envs/${envname}/app/rattail.conf'
|
||||||
else
|
else
|
||||||
VERBOSE=
|
VERBOSE=
|
||||||
QUIET='--quiet'
|
|
||||||
PROGRESS=
|
PROGRESS=
|
||||||
CONFIG='/srv/envs/${envname}/app/silent.conf'
|
CONFIG='/srv/envs/${envname}/app/silent.conf'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
RATTAIL="/srv/envs/${envname}/bin/rattail --config=$CONFIG $PROGRESS $VERBOSE"
|
RATTAIL="/srv/envs/${envname}/bin/rattail --config=$CONFIG $PROGRESS $VERBOSE"
|
||||||
PIP="sudo -H -u ${user} PIP_CONFIG_FILE=/srv/envs/${envname}/pip.conf /srv/envs/${envname}/bin/pip"
|
|
||||||
|
|
||||||
# sanity check
|
# sanity check
|
||||||
if [ "$HOME" != '/root' ]; then
|
if [ "$HOME" != '/root' ]; then
|
||||||
|
@ -25,18 +22,8 @@ if [ "$HOME" != '/root' ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# upgrade pip
|
# upgrade app
|
||||||
$PIP install $QUIET --upgrade pip
|
/srv/envs/${envname}/app/upgrade.sh $VERBOSE
|
||||||
|
|
||||||
# upgrade rattail
|
|
||||||
cd /srv/envs/${envname}/src/rattail
|
|
||||||
if [ "$(sudo -H -u ${user} git status --porcelain)" != '' ]; then
|
|
||||||
sudo -H -u ${user} git status
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
sudo -H -u ${user} git pull $QUIET
|
|
||||||
find . -name '*.pyc' -delete
|
|
||||||
$PIP install $QUIET --upgrade --upgrade-strategy eager --editable .
|
|
||||||
|
|
||||||
# run backup
|
# run backup
|
||||||
cd /srv/envs/${envname}
|
cd /srv/envs/${envname}
|
||||||
|
|
5
rattail_fabric2/deploy/backup/restart-overnight-backups.sh.mako
Executable file
5
rattail_fabric2/deploy/backup/restart-overnight-backups.sh.mako
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
DATE=`date --date='yesterday' +%Y-%m-%d`
|
||||||
|
|
||||||
|
echo "${envpath}/bin/rattail -c ${envpath}/app/silent.conf --no-versioning run-n-mail -S 'Backups (continued)' '${envpath}/app/overnight-backups.sh $DATE'" | at 'now + 1 minute'
|
25
rattail_fabric2/deploy/backup/upgrade.sh.mako
Executable file
25
rattail_fabric2/deploy/backup/upgrade.sh.mako
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
if [ "$1" = "-v" -o "$1" = "--verbose" ]; then
|
||||||
|
VERBOSE='--verbose'
|
||||||
|
QUIET=
|
||||||
|
else
|
||||||
|
VERBOSE=
|
||||||
|
QUIET='--quiet'
|
||||||
|
fi
|
||||||
|
|
||||||
|
PIP="sudo -H -u ${user} PIP_CONFIG_FILE=${envpath}/pip.conf ${envpath}/bin/pip"
|
||||||
|
|
||||||
|
|
||||||
|
# upgrade pip
|
||||||
|
$PIP install $QUIET --upgrade pip
|
||||||
|
|
||||||
|
# upgrade rattail
|
||||||
|
cd ${envpath}/src/rattail
|
||||||
|
if [ "$(sudo -H -u ${user} git status --porcelain)" != '' ]; then
|
||||||
|
sudo -H -u ${user} git status
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
sudo -H -u ${user} git pull $QUIET
|
||||||
|
find . -name '*.pyc' -delete
|
||||||
|
$PIP install $QUIET --upgrade --upgrade-strategy eager --editable .
|
Loading…
Reference in a new issue