From c042ff404f02d3fc1739b325660411c68e3bf0b3 Mon Sep 17 00:00:00 2001 From: Derek Smith Date: Mon, 13 Mar 2023 13:38:14 -0400 Subject: [PATCH] Debug updates and change to remote.conf --- create_lxc_base.sh | 2 +- deploy.sh | 388 ++++++++++++++++++++++---------------------- stub_lxc_profile.sh | 2 +- 3 files changed, 200 insertions(+), 192 deletions(-) diff --git a/create_lxc_base.sh b/create_lxc_base.sh index 9a11d37..552c777 100755 --- a/create_lxc_base.sh +++ b/create_lxc_base.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -exu +set -eu cd "$(dirname "$0")" bash -c "./stub_lxc_profile.sh --lxd-hostname=$BASE_IMAGE_VM_NAME" diff --git a/deploy.sh b/deploy.sh index 6d0fd93..2fe9df9 100755 --- a/deploy.sh +++ b/deploy.sh @@ -156,16 +156,16 @@ fi # ensure our remote path is created. mkdir -p "$REMOTE_PATH" -REMOTE_DEFINITION="$REMOTE_PATH/remote_definition" -export REMOTE_DEFINITION="$REMOTE_DEFINITION" - -######################################### +REMOTE_DEFINITION="$REMOTE_PATH/remote.conf" if [ ! -f "$REMOTE_DEFINITION" ]; then echo "ERROR: The remote definition could not be found. You may need to re-run 'ss-remote'." exit 1 fi +export REMOTE_DEFINITION="$REMOTE_DEFINITION" source "$REMOTE_DEFINITION" +export LXD_REMOTE_PASSWORD="$LXD_REMOTE_PASSWORD" +export DEPLOYMENT_STRING="$DEPLOYMENT_STRING" # this is our password generation mechanism. Relying on GPG for secure password generation function new_pass { @@ -217,216 +217,224 @@ EOL } -PROJECT_NAME="$PROJECT_PREFIX-$BITCOIN_CHAIN" -PROJECT_PATH="$PROJECTS_DIR/$PROJECT_NAME" -mkdir -p "$PROJECT_PATH" "$REMOTE_PATH/projects" -export PROJECT_NAME="$PROJECT_NAME" -export PROJECT_PATH="$PROJECT_PATH" +for PROJECT_CHAIN in ${DEPLOYMENT_STRING//,/ }; do + NO_PARENS="${PROJECT_CHAIN:1:${#PROJECT_CHAIN}-2}" + PROJECT_PREFIX=$(echo "$NO_PARENS" | cut -d'|' -f1) + BITCOIN_CHAIN=$(echo "$NO_PARENS" | cut -d'|' -f2) + export PROJECT_PREFIX="$PROJECT_PREFIX" + export BITCOIN_CHAIN="$BITCOIN_CHAIN" -# create a symlink from ./remotepath/projects/project -if [ ! -d "$REMOTE_PATH/projects/$PROJECT_NAME" ]; then - ln -s "$PROJECT_PATH" "$REMOTE_PATH/projects/$PROJECT_NAME" -fi + PROJECT_NAME="$PROJECT_PREFIX-$BITCOIN_CHAIN" + PROJECT_PATH="$PROJECTS_DIR/$PROJECT_NAME" -# check to see if the enf file exists. exist if not. -PROJECT_DEFINITION_PATH="$PROJECT_PATH/project_definition" -if [ ! -f "$PROJECT_DEFINITION_PATH" ]; then + mkdir -p "$PROJECT_PATH" "$REMOTE_PATH/projects" - # stub out a project_definition - cat >"$PROJECT_DEFINITION_PATH" <"$PROJECT_DEFINITION_PATH" < /home/ubuntu/.ss-githead" fi - export FQDN="$FQDN" - export LXD_VM_NAME="${FQDN//./-}" - export REMOTE_CERT_DIR="$REMOTE_CERT_BASE_DIR/$FQDN" - export MAC_ADDRESS_TO_PROVISION="$MAC_ADDRESS_TO_PROVISION" - - ./deploy_vm.sh - - if [ "$VIRTUAL_MACHINE" = www ]; then - # this tells our local docker client to target the remote endpoint via SSH - export DOCKER_HOST="ssh://ubuntu@$PRIMARY_WWW_FQDN" - - # enable docker swarm mode so we can support docker stacks. - if docker info | grep -q "Swarm: inactive"; then - docker swarm init --advertise-addr enp6s0 - fi - fi - -done - -# let's stub out the rest of our site definitions, if any. -for DOMAIN_NAME in ${OTHER_SITES_LIST//,/ }; do - export DOMAIN_NAME="$DOMAIN_NAME" + export DOMAIN_NAME="$PRIMARY_DOMAIN" export SITE_PATH="$SITES_PATH/$DOMAIN_NAME" + if [ "$SKIP_BTCPAY" = false ]; then + ./btcpayserver/go.sh - # stub out the site_defition if it's doesn't exist. - stub_site_definition -done - - -# now let's run the www and btcpay-specific provisioning scripts. -if [ "$SKIP_WWW" = false ]; then - ./www/go.sh - ssh ubuntu@"$PRIMARY_WWW_FQDN" "echo $LATEST_GIT_COMMIT > /home/ubuntu/.ss-githead" -fi - -export DOMAIN_NAME="$PRIMARY_DOMAIN" -export SITE_PATH="$SITES_PATH/$DOMAIN_NAME" -if [ "$SKIP_BTCPAY" = false ]; then - ./btcpayserver/go.sh - - ssh ubuntu@"$BTCPAY_FQDN" "echo $LATEST_GIT_COMMIT > /home/ubuntu/.ss-githead" -fi + ssh ubuntu@"$BTCPAY_FQDN" "echo $LATEST_GIT_COMMIT > /home/ubuntu/.ss-githead" + fi +done \ No newline at end of file diff --git a/stub_lxc_profile.sh b/stub_lxc_profile.sh index 5da7528..9d8a19a 100755 --- a/stub_lxc_profile.sh +++ b/stub_lxc_profile.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -exu +set -eu cd "$(dirname "$0")" VIRTUAL_MACHINE=base