|
|
|
#!/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
|
|
|
|
ttyd -p 3787 sh &
|
|
|
|
#python3 -m gns3server --port 8001
|
|
|
|
set -e
|
|
|
|
|
|
|
|
# first arg is `-f` or `--some-option`
|
|
|
|
if [ "${1#-}" != "$1" ]; then
|
|
|
|
set -- haproxy "$@"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$1" = 'haproxy' ]; then
|
|
|
|
shift # "haproxy"
|
|
|
|
# if the user wants "haproxy", let's add a couple useful flags
|
|
|
|
# -W -- "master-worker mode" (similar to the old "haproxy-systemd-wrapper"; allows for reload via "SIGUSR2")
|
|
|
|
# -db -- disables background mode
|
|
|
|
set -- haproxy -W -db "$@"
|
|
|
|
fi
|
|
|
|
|
|
|
|
exec "$@"
|
|
|
|
tail -f /dev/null
|
|
|
|
# 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
|