aboutsummaryrefslogtreecommitdiff
path: root/scripts/ci/deploy.sh
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xscripts/ci/deploy.sh (renamed from scripts/ci/provision.sh)44
1 files changed, 16 insertions, 28 deletions
diff --git a/scripts/ci/provision.sh b/scripts/ci/deploy.sh
index d96d854..7fcfda7 100755
--- a/scripts/ci/provision.sh
+++ b/scripts/ci/deploy.sh
@@ -5,14 +5,10 @@ set -Eeuo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
cd ../../
-VPS_COMMIT_SHA="$(git rev-parse HEAD)"
-export VPS_COMMIT_SHA
-gpg --import "${GPG_TO}.gpg"
-
mail_debug_log() {
local -r ec="${?}"
echo "Sending logs via email..."
- ./scripts/ci/mail.sh "${VPS_COMMIT_SHA}" "${ec}"
+ ./scripts/ci/mail.sh "${ec}"
echo "Done."
echo "Storing file changes to '.tfstate' files..."
@@ -26,26 +22,18 @@ mail_debug_log() {
trap mail_debug_log EXIT
create_known_hosts_file() {
- echo "${TLD},$(terraform output public_floating_ip) ssh-rsa $(awk '{print $2}' < ./secrets/ssh/vps-box-server.pub)" > ./generated-known-hosts.txt
-}
-
-setup_borg_files() {
- local -r template_file="${1}"
- local -r destination_name="${2}"
- scp ./secrets/borg/borg-remote.pub "$TLD":/root/.ssh/id_rsa.pub
- scp ./secrets/borg/borg-remote "$TLD":/root/.ssh/id_rsa
- scp ./secrets/borg/known-hosts.txt "$TLD":/root/.ssh/known_hosts
- ssh "$TLD" 'chmod 400 /root/.ssh/id_rsa'
- # shellcheck disable=SC2029
- envsubst < "${template_file}" | ssh "$TLD" "cat > /home/vps/${destination_name} && chmod +x /home/vps/${destination_name}"
- # shellcheck disable=SC2029
- ssh "$TLD" "chmod +x /home/vps/${destination_name}"
+ echo "${TLD},$(terraform output public_floating_ip) ssh-rsa $(awk '{print $2}' < ./secrets/ssh/vps-box-server.pub)" > ./generated/generated-known-hosts.txt
}
echo "Shutting down running containers and backing up data..."
create_known_hosts_file
ssh "$TLD" "cd /home/vps/ && docker-compose down"
-setup_borg_files ./scripts/box/create-backup.env.sh create-backup.sh
+scp ./secrets/borg/borg-remote.pub "$TLD":/root/.ssh/id_rsa.pub
+scp ./secrets/borg/borg-remote "$TLD":/root/.ssh/id_rsa
+scp ./secrets/borg/known-hosts.txt "$TLD":/root/.ssh/known_hosts
+scp ./generated/create-backup.sh "$TLD":/home/vps/create-backup.sh
+ssh "$TLD" 'chmod 400 /root/.ssh/id_rsa'
+ssh "$TLD" "chmod +x /home/vps/create-backup.sh"
ssh "$TLD" /home/vps/create-backup.sh > ./logs/borg-create.txt 2>&1
echo "Done."
@@ -64,31 +52,31 @@ echo "Done."
echo "Running 'terraform plan' and storing the planfile..."
mkdir -p "../vps-state/secrets/plan-files/"
-PLAN_FILE_NAME="$(date -Iseconds)-$VPS_COMMIT_SHA.tfplan"
-PLAN_FILE_PATH="../vps-state/secrets/plan-files/$PLAN_FILE_NAME"
-terraform plan -input=false -out="$PLAN_FILE_PATH" > ./logs/terraform-plan.txt 2>&1
+PLAN_FILE_NAME="$(date -Iseconds)-${VPS_COMMIT_SHA}.tfplan"
+PLAN_FILE_PATH="../vps-state/secrets/plan-files/${PLAN_FILE_NAME}"
+terraform plan -input=false -out="${PLAN_FILE_PATH}" > ./logs/terraform-plan.txt 2>&1
pushd ../vps-state/
-git add "secrets/plan-files/$PLAN_FILE_NAME"
-git commit -m "CI: add .tfplan plan file for CI run $VPS_COMMIT_SHA"
+git add "secrets/plan-files/${PLAN_FILE_NAME}"
+git commit -m "CI: add .tfplan plan file for CI run ${VPS_COMMIT_SHA}"
git push origin master
popd
echo "Done."
echo "Running 'terraform apply'..."
-terraform apply -input=false -auto-approve "$PLAN_FILE_PATH" > ./logs/terraform-apply.txt 2>&1
+terraform apply -input=false -auto-approve "${PLAN_FILE_PATH}" > ./logs/terraform-apply.txt 2>&1
echo "Done."
echo "Storing .tfstate file..."
pushd ../vps-state/
git add secrets/terraform.tfstate secrets/terraform.tfstate.backup
-git commit -m "CI: update Terraform .tfstate files for CI run $VPS_COMMIT_SHA"
+git commit -m "CI: update Terraform .tfstate files for CI run ${VPS_COMMIT_SHA}"
git push origin master
popd
echo "Done."
echo "Running the Ansible playbook..."
create_known_hosts_file
-ansible-playbook -vvv provision.yaml > ./logs/ansible.txt
+ansible-playbook -v provision.yaml > ./logs/ansible.txt 2>&1
echo "Done."
echo "Locking git-crypt repositories back..."