X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c47e500a8143b1354624a962eae7f8fc016ba72f..09e7068b4b1e0c046eb52dadce4d5d7de813fff2:/tools/salt-install/installer.sh diff --git a/tools/salt-install/installer.sh b/tools/salt-install/installer.sh index 2024c2cd1d..fde261611c 100755 --- a/tools/salt-install/installer.sh +++ b/tools/salt-install/installer.sh @@ -6,25 +6,42 @@ 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 + 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 + fi +} + +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 +} + +loadconfig() { + CONFIG_FILE=local.params + if ! test -s $CONFIG_FILE ; then + echo "Must be run from arvados-setup, maybe you need to 'initialize' first?" + fi + source ${CONFIG_FILE} } subcmd="$1" @@ -76,15 +93,11 @@ 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'" - ;; + ;; deploy) NODE=$1 - CONFIG_FILE=local.params - if ! test -s $CONFIG_FILE ; then - echo "Must be run from arvados-setup, maybe you need to 'initialize' first?" - fi - source ${CONFIG_FILE} + loadconfig set -x @@ -98,16 +111,32 @@ case "$subcmd" in if test -z "$NODE"; then for NODE in "${!NODES[@]}" do + sync deploynode done else + sync deploynode fi + + ;; + diagnostics) + loadconfig + + if ! which arvados-client ; then + apt-get install arvados-client + fi + + export ARVADOS_API_HOST="${CLUSTER}.${DOMAIN}" + export ARVADOS_API_TOKEN="$SYSTEM_ROOT_TOKEN" + + arvados-client diagnostics -internal-client ;; *) echo "Arvados installer" echo "" echo "initialize initialize the setup directory for configuration" echo "deploy deploy the configuration from the setup directory" + echo "diagnostics check your install using diagnostics" ;; esac