From 0a298f629348cca9b0e5f42f7d6dfaf50208320d Mon Sep 17 00:00:00 2001 From: Derek Smith Date: Wed, 22 Jun 2022 13:38:11 -0400 Subject: [PATCH] Added cluster.sh for provisioning remote SSH hosts --- cluster.sh | 256 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 256 insertions(+) create mode 100755 cluster.sh diff --git a/cluster.sh b/cluster.sh new file mode 100755 index 0000000..dd5d5e2 --- /dev/null +++ b/cluster.sh @@ -0,0 +1,256 @@ +#!/bin/bash + +set -ex + + + +# NOTE This script is meant to be executed on your LXD bare metal servers. This script +# ensures that the LXD daemon is installed via snap package, then initialize the daemon +# to operate in clustered mode + +COMMAND="$1" +DATA_PLANE_MACVLAN_INTERFACE= +DISK_TO_USE=loop + +if [ "$COMMAND" = create ]; then + + # override the cluster name. + CLUSTER_NAME="$2" + + if [ -z "$CLUSTER_NAME" ]; then + echo "ERROR: The cluster name was not provided." + exit 1 + fi + + source ./defaults.sh + + export LXD_REMOTE_PATH="$CLUSTERS_DIR/$CLUSTER_NAME" + CLUSTER_DEFINITION="$LXD_REMOTE_PATH/cluster_definition" + export CLUSTER_DEFINITION="$CLUSTER_DEFINITION" + + mkdir -p "$LXD_REMOTE_PATH" + if [ ! -f "$CLUSTER_DEFINITION" ]; then + # stub out a cluster_definition. + cat >"$CLUSTER_DEFINITION" <"$CLUSTER_MASTER_LXD_INIT" <