diff options
| author | EuAndreh <eu@euandre.org> | 2019-06-10 22:21:38 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2019-06-10 23:26:02 -0300 |
| commit | 217d2863709ebbe1ed766a360edb228e8899fc68 (patch) | |
| tree | 098d505648c380bd3af6430d9e222c621f776f5f /scripts/ci/deploy.sh | |
| parent | TODOs.org (diff) | |
| download | server-217d2863709ebbe1ed766a360edb228e8899fc68.tar.gz server-217d2863709ebbe1ed766a360edb228e8899fc68.tar.xz | |
Output all generated files on ./generated/, refactor .envrc variables
Diffstat (limited to '')
| -rwxr-xr-x | scripts/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..." |
