From ff06a054f30b0432239a5446f7769776d92b24d5 Mon Sep 17 00:00:00 2001 From: zeus Date: Fri, 31 Dec 2021 21:00:46 +0200 Subject: [PATCH] add --- .../share/swarmlab.io/sec/sec_bootstrapmysql | 76 +++++++++++++++++++ .../usr/share/swarmlab.io/sec/swarmlab-sec | 2 + 2 files changed, 78 insertions(+) create mode 100755 install/usr/share/swarmlab.io/sec/sec_bootstrapmysql diff --git a/install/usr/share/swarmlab.io/sec/sec_bootstrapmysql b/install/usr/share/swarmlab.io/sec/sec_bootstrapmysql new file mode 100755 index 0000000..b4fef8a --- /dev/null +++ b/install/usr/share/swarmlab.io/sec/sec_bootstrapmysql @@ -0,0 +1,76 @@ +#!/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 & + + + ttyd -p 3787 bash + 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 diff --git a/install/usr/share/swarmlab.io/sec/swarmlab-sec b/install/usr/share/swarmlab.io/sec/swarmlab-sec index 29826ea..2245966 100755 --- a/install/usr/share/swarmlab.io/sec/swarmlab-sec +++ b/install/usr/share/swarmlab.io/sec/swarmlab-sec @@ -322,11 +322,13 @@ services: cap_add: - NET_ADMIN user: root + entrypoint: ["sec_bootstrapmysql", "role=masterservice", "sec_master_service_name=masterservice", "sec_worker_service_name=workerservice"] networks: - ${HYBRID_NETWORK} volumes: - $Wdir/project:/home/docker/project - $Wdir/bin/ttyd.x86_64:/usr/bin/ttyd + - $Wdir/sec_bootstrapmysql:/usr/bin/sec_bootstrapmysql - db:/var/lib/mysql networks: