diff --git a/sec_bootstrap b/sec_bootstrap new file mode 100755 index 0000000..bf25c40 --- /dev/null +++ b/sec_bootstrap @@ -0,0 +1,74 @@ +#!/bin/sh + +ROLE="undefined" +MPI_MASTER_SERVICE_NAME="sec_masterservice" +MPI_WORKER_SERVICE_NAME="sec_workerservice" +HOSTNAMES="/etc/nethosts" + +####################### +# ARGUMENTS PARSER + +while [ "$1" != "" ]; +do + PARAM=$(echo "$1" | awk -F= '{print $1}') + VALUE=$(echo "$1" | awk -F= '{print $2}') + + case $PARAM in + role) + [ "$VALUE" ] && ROLE=$VALUE + ;; + + sec_master_service_name) + [ "$VALUE" ] && MPI_MASTER_SERVICE_NAME=$VALUE + ;; + + sec_worker_service_name) + [ "$VALUE" ] && MPI_WORKER_SERVICE_NAME=$VALUE + ;; + *) + echo "ERROR: unknown parameter \"$PARAM\"" + exit 1 + ;; + esac + shift +done + + + +cat > /etc/opt/service_names <<- EOF +MPI_MASTER_SERVICE_NAME=${MPI_MASTER_SERVICE_NAME} +MPI_WORKER_SERVICE_NAME=${MPI_WORKER_SERVICE_NAME} +EOF + +case $ROLE in + "masterservice") + + # Auto update default host file in background and dumb all output + auto_update_hosts "${HOSTNAMES}" > /dev/null 2>&1 & + #tail -f /dev/null + #/root/start-nginx.sh + python3 -m gns3server --port 8001 + # Start ssh server + #/usr/sbin/sshd -D + ;; + + + "workerservice") + + # Start ssh server in background + #/usr/sbin/sshd -D & + + # Keep trying to connect to master node and stay there indefinitely so that master node can see + # the connected hosts that are ready for MPI work + #while sleep 1 + #do + # shellcheck disable=SC2086 + # ssh -T -o "StrictHostKeyChecking no" \ + # -i "${USER_HOME}/.ssh/id_rsa" \ + # ${USER}@${MPI_MASTER_SERVICE_NAME} \ + tail -f /dev/null + #done + ;; + *) + echo 'role argument only accepts "masterservice" or "workerservice"' +esac