Changeset - 0b5f6234add4
[Not reviewed]
0 2 2
Lance Edgar - 5 years ago 2019-09-30 15:37:21
lance@edbob.org
Add upgrade, restart-overnight-backups scripts for generic backup app
4 files changed with 46 insertions and 17 deletions:
0 comments (0 inline, 0 general) First comment
rattail_fabric2/backup.py
Show inline comments
 
@@ -104,7 +104,7 @@ def deploy_backup_app(c, deploy, envname, mkvirtualenv=True, user='rattail',
 
        # config
 
        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
 
        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 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),
 
                       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
 
        path = '{}/luigi-overnight.py'.format(envname)
 
        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),
 
                       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
 
        apt.install(c, 'supervisor')
 
        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 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
 
    if install_rattail or everything:
 
        everything_context = dict(context)
rattail_fabric2/deploy/backup/backup-everything.mako
Show inline comments
 
@@ -2,19 +2,16 @@
 

	
 
if [ "$1" = "-v" -o "$1" = "--verbose" ]; then
 
    VERBOSE='--verbose'
 
    QUIET=
 
    PROGRESS='--progress'
 
    CONFIG='/srv/envs/${envname}/app/rattail.conf'
 
else
 
    VERBOSE=
 
    QUIET='--quiet'
 
    PROGRESS=
 
    CONFIG='/srv/envs/${envname}/app/silent.conf'
 
fi
 

	
 

	
 
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
 
if [ "$HOME" != '/root' ]; then
 
@@ -25,18 +22,8 @@ if [ "$HOME" != '/root' ]; then
 
    exit 1
 
fi
 

	
 
# upgrade pip
 
$PIP install $QUIET --upgrade pip
 

	
 
# 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 .
 
# upgrade app
 
/srv/envs/${envname}/app/upgrade.sh $VERBOSE
 

	
 
# run backup
 
cd /srv/envs/${envname}
rattail_fabric2/deploy/backup/restart-overnight-backups.sh.mako
Show inline comments
 
new file 100755
 
#!/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'
rattail_fabric2/deploy/backup/upgrade.sh.mako
Show inline comments
 
new file 100755
 
#!/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 .
0 comments (0 inline, 0 general) First comment
You need to be logged in to comment. Login now