forked from ss/sovereign-stack
Refactors from AWS removal.
This commit is contained in:
parent
57b7985009
commit
25139b514c
@ -26,7 +26,34 @@ EOF
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function prepare_host {
|
ssh-keygen -f "$SSH_HOME/known_hosts" -R "$FQDN"
|
||||||
|
|
||||||
|
# if the machine doesn't exist, we create it.
|
||||||
|
if ! lxc list --format csv | grep -q "$LXD_VM_NAME"; then
|
||||||
|
|
||||||
|
# create a base image if needed and instantiate a VM.
|
||||||
|
if [ -z "$MAC_ADDRESS_TO_PROVISION" ]; then
|
||||||
|
echo "ERROR: You MUST define a MAC Address for all your machines by setting WWW_SERVER_MAC_ADDRESS, BTCPAYSERVER_MAC_ADDRESS in your site defintion."
|
||||||
|
echo "INFO: IMPORTANT! You MUST have DHCP Reservations for these MAC addresses. You also need records established the DNS."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
./stub_lxc_profile.sh "$LXD_VM_NAME"
|
||||||
|
|
||||||
|
# now let's create a new VM to work with.
|
||||||
|
lxc init --profile="$LXD_VM_NAME" "$VM_NAME" "$LXD_VM_NAME" --vm
|
||||||
|
|
||||||
|
# let's PIN the HW address for now so we don't exhaust IP
|
||||||
|
# and so we can set DNS internally.
|
||||||
|
lxc config set "$LXD_VM_NAME" "volatile.enp5s0.hwaddr=$MAC_ADDRESS_TO_PROVISION"
|
||||||
|
lxc config device override "$LXD_VM_NAME" root size="${ROOT_DISK_SIZE_GB}GB"
|
||||||
|
|
||||||
|
lxc start "$LXD_VM_NAME"
|
||||||
|
|
||||||
|
./wait_for_lxc_ip.sh "$LXD_VM_NAME"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
# scan the remote machine and install it's identity in our SSH known_hosts file.
|
# scan the remote machine and install it's identity in our SSH known_hosts file.
|
||||||
ssh-keyscan -H -t ecdsa "$FQDN" >> "$SSH_HOME/known_hosts"
|
ssh-keyscan -H -t ecdsa "$FQDN" >> "$SSH_HOME/known_hosts"
|
||||||
|
|
||||||
@ -41,21 +68,3 @@ function prepare_host {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ssh-keygen -f "$SSH_HOME/known_hosts" -R "$FQDN"
|
|
||||||
|
|
||||||
# if the machine doesn't exist, we create it.
|
|
||||||
if ! lxc list --format csv | grep -q "$LXD_VM_NAME"; then
|
|
||||||
|
|
||||||
# create a base image if needed and instantiate a VM.
|
|
||||||
if [ -z "$MAC_ADDRESS_TO_PROVISION" ]; then
|
|
||||||
echo "ERROR: You MUST define a MAC Address for all your machines by setting WWW_SERVER_MAC_ADDRESS, BTCPAYSERVER_MAC_ADDRESS in your site defintion."
|
|
||||||
echo "INFO: IMPORTANT! You MUST have DHCP Reservations for these MAC addresses. You also need records established the DNS."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
./provision_lxc.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
prepare_host
|
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
cd "$(dirname "$0")"
|
|
||||||
|
|
||||||
./stub_lxc_profile.sh "$LXD_VM_NAME"
|
|
||||||
|
|
||||||
# now let's create a new VM to work with.
|
|
||||||
lxc init --profile="$LXD_VM_NAME" "$VM_NAME" "$LXD_VM_NAME" --vm
|
|
||||||
|
|
||||||
# let's PIN the HW address for now so we don't exhaust IP
|
|
||||||
# and so we can set DNS internally.
|
|
||||||
lxc config set "$LXD_VM_NAME" "volatile.enp5s0.hwaddr=$MAC_ADDRESS_TO_PROVISION"
|
|
||||||
lxc config device override "$LXD_VM_NAME" root size="${ROOT_DISK_SIZE_GB}GB"
|
|
||||||
|
|
||||||
lxc start "$LXD_VM_NAME"
|
|
||||||
|
|
||||||
./wait_for_lxc_ip.sh "$LXD_VM_NAME"
|
|
@ -1,29 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
DDNS_STRING=
|
|
||||||
|
|
||||||
# for the www stack, we register only the domain name so our URLs look like https://$DOMAIN_NAME
|
|
||||||
if [ "$VIRTUAL_MACHINE" = www ] || [ "$VIRTUAL_MACHINE" = certonly ]; then
|
|
||||||
DDNS_STRING="@"
|
|
||||||
else
|
|
||||||
DDNS_STRING="$DDNS_HOST"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# wait for DNS to get setup. Pass in the IP address of the actual VPS.
|
|
||||||
MACHINE_IP="$(docker-machine ip "$FQDN")"
|
|
||||||
DDNS_SLEEP_SECONDS=60
|
|
||||||
while true; do
|
|
||||||
# we test the www CNAME here so we can be assured the underlying has corrected.
|
|
||||||
if [[ "$(getent hosts "$FQDN" | awk '{ print $1 }')" == "$MACHINE_IP" ]]; then
|
|
||||||
echo ""
|
|
||||||
echo "SUCCESS: The DNS appears to be configured correctly."
|
|
||||||
|
|
||||||
echo "INFO: Waiting $DDNS_SLEEP_SECONDS seconds to allow cached DNS records to expire."
|
|
||||||
sleep "$DDNS_SLEEP_SECONDS";
|
|
||||||
break;
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "." && sleep 2;
|
|
||||||
done
|
|
Loading…
Reference in New Issue
Block a user