* Revert "Migration sql changes (#199)"
This reverts commit 12c834469c.
* Save migrate file on db
* Add message on migration error in lamassu-update
103 lines
3.3 KiB
Bash
Executable file
103 lines
3.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
export LOG_FILE=/tmp/update.$(date +"%Y%m%d").log
|
|
export NPM_BIN=$(npm -g bin)
|
|
|
|
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
|
|
|
rm -f ${LOG_FILE}
|
|
|
|
decho () {
|
|
echo `date +"%H:%M:%S"` $1
|
|
echo `date +"%H:%M:%S"` $1 >> ${LOG_FILE}
|
|
}
|
|
|
|
cat <<'FIG'
|
|
_
|
|
| | __ _ _ __ ___ __ _ ___ ___ _ _ ___ ___ _ ____ _____ _ __
|
|
| |/ _` | '_ ` _ \ / _` / __/ __| | | |_____/ __|/ _ \ '__\ \ / / _ \ '__|
|
|
| | (_| | | | | | | (_| \__ \__ \ |_| |_____\__ \ __/ | \ V / __/ |
|
|
|_|\__,_|_| |_| |_|\__,_|___/___/\__,_| |___/\___|_| \_/ \___|_|
|
|
FIG
|
|
|
|
echo -e "\nStarting \033[1mlamassu-server\033[0m update. This will take a few minutes...\n"
|
|
|
|
if [ "$(whoami)" != "root" ]; then
|
|
echo -e "This script has to be run as \033[1mroot\033[0m user"
|
|
exit 3
|
|
fi
|
|
|
|
# Use a lock file so failed scripts cannot be imediately retried
|
|
# If not the backup created on this script would be replaced
|
|
if ! mkdir /var/lock/lamassu-update; then
|
|
echo "Script is locked because of a failure." >&2
|
|
exit 1
|
|
fi
|
|
|
|
decho "stopping lamassu-server"
|
|
supervisorctl stop lamassu-server >> ${LOG_FILE} 2>&1
|
|
supervisorctl stop lamassu-admin-server >> ${LOG_FILE} 2>&1
|
|
|
|
decho "unlinking ${NPM_BIN}/lamassu* old executables"
|
|
find ${NPM_BIN} -type l \( -name "lamassu-*" -or -name "hkdf" \) -exec rm -fv {} \; >> ${LOG_FILE} 2>&1
|
|
|
|
if [ -d "/usr/lib/node_modules/lamassu-server" ]; then
|
|
decho "renaming old lamassu-server instance to lamassu-server-old"
|
|
mv -v "/usr/lib/node_modules/lamassu-server" "/usr/lib/node_modules/lamassu-server-old" >> ${LOG_FILE} 2>&1
|
|
fi
|
|
|
|
decho "updating node"
|
|
npm install n -g >> ${LOG_FILE} 2>&1
|
|
n lts >> ${LOG_FILE} 2>&1
|
|
decho "version installed $(node -v)"
|
|
export NPM_BIN=$(npm -g bin)
|
|
|
|
decho "updating lamassu-server#dev"
|
|
npm -g install lamassu/lamassu-server#dev --unsafe-perm >> ${LOG_FILE} 2>&1
|
|
|
|
decho "rebuilding npm deps"
|
|
cd $(npm root -g)/lamassu-server/ >> ${LOG_FILE} 2>&1
|
|
npm rebuild >> ${LOG_FILE} 2>&1
|
|
|
|
{
|
|
decho "running migration"
|
|
lamassu-migrate >> ${LOG_FILE} 2>&1
|
|
} || { echo "Failure running migrations" ; exit 1 ; }
|
|
|
|
lamassu-migrate-config >> ${LOG_FILE} 2>&1
|
|
|
|
decho "update to mnemonic"
|
|
$SCRIPTPATH/bin/lamassu-update-to-mnemonic --prod
|
|
|
|
decho "updating supervisor conf"
|
|
perl -i -pe 's/command=.*/command=$ENV{NPM_BIN}\/lamassu-server/g' /etc/supervisor/conf.d/lamassu-server.conf >> ${LOG_FILE} 2>&1
|
|
perl -i -pe 's/command=.*/command=$ENV{NPM_BIN}\/lamassu-admin-server/g' /etc/supervisor/conf.d/lamassu-admin-server.conf >> ${LOG_FILE} 2>&1
|
|
|
|
decho "updating lamassu-server"
|
|
supervisorctl update lamassu-server >> ${LOG_FILE} 2>&1
|
|
supervisorctl update lamassu-admin-server >> ${LOG_FILE} 2>&1
|
|
supervisorctl start lamassu-server >> ${LOG_FILE} 2>&1
|
|
supervisorctl start lamassu-admin-server >> ${LOG_FILE} 2>&1
|
|
|
|
decho "updating backups conf"
|
|
BACKUP_CMD=${NPM_BIN}/lamassu-backup-pg
|
|
BACKUP_CRON="@daily $BACKUP_CMD > /dev/null"
|
|
( (crontab -l 2>/dev/null || echo -n "") | grep -v '@daily.*lamassu-backup-pg'; echo $BACKUP_CRON ) | crontab - >> $LOG_FILE 2>&1
|
|
$BACKUP_CMD >> $LOG_FILE 2>&1
|
|
|
|
decho "updating motd scripts"
|
|
set +e
|
|
chmod -x /etc/update-motd.d/*-release-upgrade
|
|
chmod -x /etc/update-motd.d/*-updates-available
|
|
chmod -x /etc/update-motd.d/*-reboot-required
|
|
chmod -x /etc/update-motd.d/*-help-text
|
|
chmod -x /etc/update-motd.d/*-cloudguest
|
|
set -e
|
|
|
|
# reset terminal to link new executables
|
|
hash -r
|
|
|
|
rm -r /var/lock/lamassu-update
|
|
|
|
decho "Update complete!"
|