#!/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 & chmod 644 /etc/mysql/mysql.conf.d/mysqld.cnf mysqld --user=root sleep 2 if ! mysql -e "use $MYSQL_DATABASE "; then # mysql -e "create database $MYSQL_DATABASE ; GRANT ALL PRIVILEGES ON $MYSQL_DATABASE.* TO $MYSQL_USER@localhost IDENTIFIED BY '$MYSQL_PASSWORD'" mysql -e "create database $MYSQL_DATABASE ; " mysql -e "GRANT ALL PRIVILEGES ON $MYSQL_DATABASE.* TO $MYSQL_USER@localhost IDENTIFIED BY '$MYSQL_PASSWORD'" mysql -e "flush PRIVILEGES " sleep 1 else mysql -e "use $MYSQL_DATABASE; UPDATE wp_options SET option_name = 'siteurl', option_value = 'http://localhost:$SERVICEPORT', autoload = 'yes' WHERE option_name = 'siteurl' " mysql -e "use $MYSQL_DATABASE; UPDATE wp_options SET option_name = 'home', option_value = 'http://localhost:$SERVICEPORT', autoload = 'yes' WHERE option_name = 'home' " fi 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} \ ttyd -p 3787 bash & chmod 644 /etc/mysql/mysql.conf.d/mysqld.cnf mysqld --user=root & sleep 2 if ! mysql -e "use $MYSQL_DATABASE "; then mysql -e "create database $MYSQL_DATABASE ; " mysql -e "GRANT ALL PRIVILEGES ON $MYSQL_DATABASE.* TO $MYSQL_USER@localhost IDENTIFIED BY '$MYSQL_PASSWORD'" mysql -e "flush PRIVILEGES " sleep 1 else mysql -e "use $MYSQL_DATABASE; UPDATE wp_options SET option_name = 'siteurl', option_value = 'http://localhost:$SERVICEPORT', autoload = 'yes' WHERE option_name = 'siteurl' " mysql -e "use $MYSQL_DATABASE; UPDATE wp_options SET option_name = 'home', option_value = 'http://localhost:$SERVICEPORT', autoload = 'yes' WHERE option_name = 'home' " fi tail -f /dev/null #done ;; *) echo 'role argument only accepts "masterservice" or "workerservice"' esac