Add 'mv_domain.sh' script
This commit adds a new 'mv_domain.sh' script that moves from an old set of wildcard domains to a new one.
This commit is contained in:
parent
266521d6e5
commit
b3c3fa2338
1 changed files with 85 additions and 0 deletions
85
distillery/mv_domain.sh
Normal file
85
distillery/mv_domain.sh
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# read the lib/shared.sh and read the slug argument.
|
||||
DISABLE_LOG=1
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
cd "$DIR"
|
||||
source "$DIR/lib/lib.sh"
|
||||
unset DISABLE_LOG
|
||||
require_slug_argument
|
||||
|
||||
|
||||
# if the site doesn't exist, I can't open a shell.
|
||||
if ! sql_bookkeep_exists "$SLUG"; then
|
||||
log_error "=> Site '$SLUG' does not exist in bookeeping table. "
|
||||
echo "I can't show info about it. "
|
||||
exit 1
|
||||
fi;
|
||||
|
||||
# Read everything from the database
|
||||
read -r INSTANCE_BASE_DIR MYSQL_DATABASE MYSQL_USER GRAPHDB_REPO GRAPHDB_USER GRAPHDB_PASSWORD <<< "$(sql_bookkeep_load "${SLUG}" "filesystem_base,sql_database,sql_user,graphdb_repository,graphdb_user,graphdb_password" | tail -n +2)"
|
||||
|
||||
GRAPHDB_HEADER="$(printf "%s:%s" "$GRAPHDB_USER" "$GRAPHDB_PASSWORD" | base64 -w 0)"
|
||||
|
||||
NEW_DOMAIN="wisski.data.fau.de"
|
||||
NEW_INSTANCE_DOMAIN="$SLUG.$NEW_DOMAIN"
|
||||
NEW_INSTANCE_DOMAIN="$(echo "$NEW_INSTANCE_DOMAIN" | tr '[:upper:]' '[:lower:]')"
|
||||
NEW_INSTANCE_BASE_DIR="$DEPLOY_INSTANCES_DIR/$NEW_INSTANCE_DOMAIN"
|
||||
NEW_INSTANCE_DATA_DIR="$NEW_INSTANCE_BASE_DIR/data/"
|
||||
NEW_LETSENCRYPT_HOST="$NEW_INSTANCE_DOMAIN"
|
||||
|
||||
CONFIG_FILE="$INSTANCE_BASE_DIR/.env"
|
||||
NEW_CONFIG_FILE="$INSTANCE_BASE_DIR/.envnew"
|
||||
OLD_CONFIG_FILE="$INSTANCE_BASE_DIR/.envold"
|
||||
|
||||
log_info " => New Configuration for \'$NEW_DOMAIN\'"
|
||||
|
||||
echo "NEW_DOMAIN=$NEW_DOMAIN"
|
||||
echo "NEW_INSTANCE_DOMAIN=$NEW_INSTANCE_DOMAIN"
|
||||
echo "NEW_INSTANCE_BASE_DIR=$NEW_INSTANCE_BASE_DIR"
|
||||
|
||||
echo " => Preparing new configuration file"
|
||||
|
||||
load_template "docker-env/barrel" \
|
||||
"REAL_PATH" "${NEW_INSTANCE_DATA_DIR}" \
|
||||
"GLOBAL_AUTHORIZED_KEYS_FILE" "${GLOBAL_AUTHORIZED_KEYS_FILE}" \
|
||||
"VIRTUAL_HOST" "${NEW_INSTANCE_DOMAIN}" \
|
||||
"SLUG" "${SLUG}" \
|
||||
"LETSENCRYPT_HOST" "${NEW_LETSENCRYPT_HOST}" \
|
||||
"LETSENCRYPT_EMAIL" "${LETSENCRYPT_EMAIL}" \
|
||||
"DISTILLERY_DIR" "${DIR}" | tee "$NEW_CONFIG_FILE"
|
||||
|
||||
while true; do
|
||||
log_info " => I'm about to make breaking changes. "
|
||||
read -p "This can not be undone. Please type 'y' to continue: " yn
|
||||
case $yn in
|
||||
[Yy]* ) break;;
|
||||
* ) echo "Abort. "; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
log_info " => Shutting down old system"
|
||||
|
||||
cd "$INSTANCE_BASE_DIR"
|
||||
docker-compose down
|
||||
cd "$DIR"
|
||||
|
||||
log_info " => Writing new configuration files"
|
||||
mv "$CONFIG_FILE" "$OLD_CONFIG_FILE"
|
||||
mv "$NEW_CONFIG_FILE" "$CONFIG_FILE"
|
||||
|
||||
log_info " => Moving base directory"
|
||||
mv "$INSTANCE_BASE_DIR" "$NEW_INSTANCE_BASE_DIR"
|
||||
|
||||
log_info " => Updating bookeeping"
|
||||
dockerized_mysql -D "$DISTILLERY_BOOKKEEPING_DATABASE" -e "UPDATE \`$DISTILLERY_BOOKKEEPING_TABLE\` SET \`filesystem_base\`='$NEW_INSTANCE_BASE_DIR' WHERE \`slug\`='$SLUG';"
|
||||
|
||||
log_info " => Starting in new location"
|
||||
cd "$NEW_INSTANCE_BASE_DIR"
|
||||
docker-compose up -d
|
||||
|
||||
log_info " => Updating trusted hosts"
|
||||
docker-compose exec barrel /user_shell.sh /utils/set_trusted_host.sh
|
||||
|
||||
log_info " => We should be moved to '$NEW_INSTANCE_DOMAIN' now"
|
||||
Loading…
Add table
Add a link
Reference in a new issue