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
+ 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"
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
if test -z "$NODE"; then
for NODE in "${!NODES[@]}"
do
+ sync
deploynode
done
else
+ sync
deploynode
fi
;;
# 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
# 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