18870: Refactor sync
authorPeter Amstutz <peter.amstutz@curii.com>
Mon, 27 Jun 2022 01:22:03 +0000 (21:22 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Tue, 28 Jun 2022 18:20:35 +0000 (14:20 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

tools/salt-install/installer.sh
tools/salt-install/local.params.example.multiple_hosts

index 2024c2cd1d3c81b5d247cefda4315e6f389390fc..6fdd0320feb0370a54752a6bba1c1e069167d1ca 100755 (executable)
@@ -6,25 +6,35 @@
 
 set -e
 
 
 set -e
 
-deploynode() {
-           if test $NODE = localhost ; then
-               sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}
-           else
-               if ! ssh $NODE test -d arvados-setup ; then
-                   ssh $NODE git init --bare arvados-setup.git
-                   if ! git remote add $NODE $DEPLOY_USER@$NODE:arvados-setup.git ; then
-                       git remote set-url $NODE $DEPLOY_USER@$NODE:arvados-setup.git
-                   fi
-                   git push $NODE $BRANCH
-                   ssh $NODE git clone arvados-setup.git arvados-setup
-               fi
-
-               git push $NODE $BRANCH
-               ssh $NODE git -C arvados-setup checkout $BRANCH
-               ssh $NODE git -C arvados-setup pull
-
-               ssh $DEPLOY_USER@$NODE "cd arvados-setup && sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}"
+sync() {
+    if test $NODE = localhost ; then
+       # nothing to do
+    else
+       if ! ssh $NODE test -d arvados-setup ; then
+           ssh $NODE git init --bare arvados-setup.git
+           if ! git remote add $NODE $DEPLOY_USER@$NODE:arvados-setup.git ; then
+               git remote set-url $NODE $DEPLOY_USER@$NODE:arvados-setup.git
            fi
            fi
+           git push $NODE $BRANCH
+           ssh $NODE git clone arvados-setup.git arvados-setup
+       fi
+
+       git push $NODE $BRANCH
+       ssh $NODE git -C arvados-setup checkout $BRANCH
+       ssh $NODE git -C arvados-setup pull
+}
+
+deploynode() {
+    if test -z "${NODES[$NODE]}" ; then
+       echo "No roles declared for '$NODE' in local.params"
+       exit 1
+    fi
+
+    if test $NODE = localhost ; then
+       sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}
+    else
+       ssh $DEPLOY_USER@$NODE "cd arvados-setup && sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}"
+    fi
 }
 
 subcmd="$1"
 }
 
 subcmd="$1"
@@ -76,7 +86,7 @@ case "$subcmd" in
        git commit -m"initial commit"
 
        echo "setup directory initialized, now go to $SETUPDIR, edit 'local.params' and 'local_config_dir' as needed, then run 'installer.sh deploy'"
        git commit -m"initial commit"
 
        echo "setup directory initialized, now go to $SETUPDIR, edit 'local.params' and 'local_config_dir' as needed, then run 'installer.sh deploy'"
-    ;;
+       ;;
     deploy)
        NODE=$1
        CONFIG_FILE=local.params
     deploy)
        NODE=$1
        CONFIG_FILE=local.params
@@ -98,9 +108,11 @@ case "$subcmd" in
        if test -z "$NODE"; then
            for NODE in "${!NODES[@]}"
            do
        if test -z "$NODE"; then
            for NODE in "${!NODES[@]}"
            do
+               sync
                deploynode
            done
        else
                deploynode
            done
        else
+           sync
            deploynode
        fi
        ;;
            deploynode
        fi
        ;;
index 404d8b005b32de017be78c595e0cef56b298cc8d..edbee413bd96ca6c08e825d4fdd68ca6dffe5ed8 100644 (file)
@@ -8,7 +8,8 @@
 # The Arvados cluster ID, needs to be 5 lowercase alphanumeric characters.
 CLUSTER="cluster_fixme_or_this_wont_work"
 
 # The Arvados cluster ID, needs to be 5 lowercase alphanumeric characters.
 CLUSTER="cluster_fixme_or_this_wont_work"
 
-# The domainname you want tou give to your cluster's hosts
+# The domain name you want to give to your cluster's hosts
+# the end result hostnames will be $SERVICE.$CLUSTER.$DOMAIN
 DOMAIN="domain_fixme_or_this_wont_work"
 
 # For multi-node installs, the ssh log in for each node
 DOMAIN="domain_fixme_or_this_wont_work"
 
 # For multi-node installs, the ssh log in for each node
@@ -20,12 +21,12 @@ DEPLOY_USER=root
 # it for the specified roles.
 declare -A NODES
 NODES=(
 # it for the specified roles.
 declare -A NODES
 NODES=(
-  [controller.$DOMAIN]=api,controller,websocket,dispatcher,keepbalance
-  [keep0.$DOMAIN]=keepstore
-  [keep1.$DOMAIN]=keepstore
-  [keep.$DOMAIN]=keepproxy,keepweb
-  [workbench.$DOMAIN]=workbench,workbench2,webshell
-  [shell.$DOMAIN]=shell
+  [controller.${CLUSTER}.$DOMAIN]=api,controller,websocket,dispatcher,keepbalance
+  [keep0.${CLUSTER}.$DOMAIN]=keepstore
+  [keep1.${CLUSTER}.$DOMAIN]=keepstore
+  [keep.${CLUSTER}.$DOMAIN]=keepproxy,keepweb
+  [workbench.${CLUSTER}.$DOMAIN]=workbench,workbench2,webshell
+  [shell.${CLUSTER}.$DOMAIN]=shell
 )
 
 # Host SSL port where you want to point your browser to access Arvados
 )
 
 # Host SSL port where you want to point your browser to access Arvados