From 2ed8df07c42642f6f825e6ef2d94b894450e0b1e Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 5 Dec 2018 10:18:49 -0500 Subject: add a base configuration for testing the d2a script --- bin/helpers/launch-base | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ bin/launch | 2 +- bin/terminate | 2 +- 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100755 bin/helpers/launch-base (limited to 'bin') diff --git a/bin/helpers/launch-base b/bin/helpers/launch-base new file mode 100755 index 0000000..c70bcac --- /dev/null +++ b/bin/helpers/launch-base @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +set -eu +set -o pipefail + +echo "Creating droplet for base..." +data=$(doctl \ + -t "$(cat /mnt/digitalocean)" \ + compute droplet create \ + base \ + --image debian-9-x64 \ + --region nyc3 \ + --size s-1vcpu-1gb \ + --ssh-keys 23160354 \ + --format ID,PublicIPv4 \ + --no-header \ + --wait) +id=$(echo "$data" | awk '{print $1}') +ip=$(echo "$data" | awk '{print $2}') +echo "Created droplet with id $id and ip $ip" + +echo "Provisioning droplet..." + +conf_location="/usr/local/share/puppet-tozt" +conf_repo="git://github.com/doy/puppet-tozt" + +remote() { + # shellcheck disable=SC2029 + ssh -oStrictHostKeyChecking=accept-new root@"$ip" "$@" +} + +ensure_conf_exists() { + if remote test -d "$conf_location"; then + remote "cd '$conf_location' && git pull" + else + remote "mkdir -p '$conf_location'" + remote "cd '$conf_location' && git clone '$conf_repo' ." + fi + remote "cd '$conf_location' && git submodule update --init --recursive" +} + +while ! remote true; do + sleep 5 +done + +if remote test ! -e /usr/bin/pacman; then + remote apt-get -y update + remote apt-get -y install git + ensure_conf_exists + remote "cd '$conf_location/digitalocean-debian-to-arch' && bash install.sh --i_understand_that_this_droplet_will_be_completely_wiped --extra_packages 'puppet git ruby-shadow'" + sleep 30 + while ! remote true; do + sleep 30 + done +fi + +ensure_conf_exists + +echo "Done provisioning" diff --git a/bin/launch b/bin/launch index 663b176..5ae25a4 100755 --- a/bin/launch +++ b/bin/launch @@ -6,7 +6,7 @@ script_path="$(realpath "$(dirname "$0")")" secrets_bin="${script_path}/secrets" case "$1" in - tozt|algo|mail|partofme) + base|tozt|algo|mail|partofme) "$secrets_bin" open trap '"$secrets_bin" close' EXIT "$(dirname "$0")/helpers/launch-$1" diff --git a/bin/terminate b/bin/terminate index 5c99407..2b100c1 100755 --- a/bin/terminate +++ b/bin/terminate @@ -6,7 +6,7 @@ script_path="$(realpath "$(dirname "$0")")" secrets_bin="${script_path}/secrets" case "$1" in - tozt|algo|mail|partofme) + base|tozt|algo|mail|partofme) "$secrets_bin" open trap '"$secrets_bin" close' EXIT doctl -t "$(cat /mnt/digitalocean)" compute droplet delete "$1" -- cgit v1.2.3-54-g00ecf