git commit -m"prepare for deploy"
for NODE in "${!NODES[@]}"
do
- if ! ssh $NODE test -d arvados-setup.git ; then
- ssh $NODE git init --bare arvados-setup.git
- git add remote $NODE $DEPLOY_USER@$NODE:arvados-setup.git
- git push $NODE
- ssh $NODE git clone arvados-setup.git arvados-setup
+ if test $NODE = localhost ; then
+ sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}
+ else
+ if ! ssh $NODE test -d arvados-setup.git ; then
+ ssh $NODE git init --bare arvados-setup.git
+ git add remote $NODE $DEPLOY_USER@$NODE:arvados-setup.git
+ git push $NODE
+ ssh $NODE git clone arvados-setup.git arvados-setup
+ fi
+
+ git push $NODE master
+ ssh $NODE git -C arvados-setup pull
+
+ ssh $DEPLOY_USER@$NODE "cd arvados-setup && sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}"
fi
-
- git push $NODE master
- ssh $NODE git -C arvados-setup pull
-
- ssh $DEPLOY_USER@$NODE "cd arvados-setup && sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}"
done
;;
*)
# The domainname you want tou give to your cluster's hosts
DOMAIN="domain_fixme_or_this_wont_work"
+# For multi-node installs, the ssh log in for each node
+# must be root or able to sudo
+DEPLOY_USER=root
+
+# The mapping of nodes to roles
+# installer.sh will log in to each of these nodes and then provision
+# 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
+)
+
# Host SSL port where you want to point your browser to access Arvados
# Defaults to 443 for regular runs, and to 8443 when called in Vagrant.
# You can point it to another port if desired
# The domainname you want tou give to your cluster's hosts
DOMAIN="domain_fixme_or_this_wont_work"
+# For multi-node installs, the ssh log in for each node
+# must be root or able to sudo
+DEPLOY_USER=root
+
+# The mapping of nodes to roles
+# installer.sh will log in to each of these nodes and then provision
+# it for the specified roles.
+declare -A NODES
+NODES=(
+ [localhost]=api,controller,websocket,dispatcher,keepbalance,keepstore,keepproxy,keepweb,workbench,workbench2,webshell
+)
+
# External ports used by the Arvados services
CONTROLLER_EXT_SSL_PORT=443
KEEP_EXT_SSL_PORT=25101
# The domainname for your cluster's hosts
DOMAIN="domain_fixme_or_this_wont_work"
+# For multi-node installs, the ssh log in for each node
+# must be root or able to sudo
+DEPLOY_USER=root
+
+# The mapping of nodes to roles
+# installer.sh will log in to each of these nodes and then provision
+# it for the specified roles.
+declare -A NODES
+NODES=(
+ [localhost]=api,controller,websocket,dispatcher,keepbalance,keepstore,keepproxy,keepweb,workbench,workbench2,webshell
+)
+
# Set this value when installing a cluster in a single host with a single
# hostname to access all the instances. HOSTNAME_EXT should be set to the
# external hostname for the instance.