mirror of
https://github.com/postmannen/ctrl.git
synced 2024-12-14 12:37:31 +00:00
2fb43591ce
removed example for no longer existing relay messages cleaned up comments Removed some remaings after REQToFileNACK Implemented env variables for all flags, and removed config flag. Also added use of .env file. removed configuration as input argument from all the loggers replaced logging of new messages in read folder with a logDebug so we don't send those messages to the error kernel
111 lines
3.1 KiB
Bash
Executable file
111 lines
3.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Script to be copied over to the host, and executed.
|
|
# The script should exit with a line echoing out the
|
|
# error or success message, and should then be followed
|
|
# by an error code 0 if ok, and >0 if not ok.
|
|
##
|
|
# The HOSTNAME environmental variable is passed on to
|
|
# the host when the ssh session are initiated within
|
|
# the wrapper script. It is read from the hosts.txt
|
|
# file which should be in the format:
|
|
# 10.10.10.1,myhostnamehere
|
|
|
|
workdir=/usr/local/steward
|
|
|
|
# ------- Generate steward config
|
|
|
|
mkdir -p $workdir/etc
|
|
touch $workdir/etc/config.toml
|
|
|
|
# The ${NODENAME} is exported directly in the ssh command in the loop-wrapper script
|
|
cat >$workdir/etc/config.toml <<EOF
|
|
BrokerAddress = "<INSERT_BROKER-ADDRESS-HERE>:40223"
|
|
CentralNodeName = "central"
|
|
ConfigFolder = "${workdir}/etc/"
|
|
DatabaseFolder = "${workdir}/lib"
|
|
DefaultMessageRetries = 1
|
|
DefaultMessageTimeout = 10
|
|
ExposeDataFolder = ""
|
|
NatsConnectRetryInterval = 10
|
|
NkeySeedFile = "${workdir}/seed.txt"
|
|
NodeName = "${NODENAME}"
|
|
ProfilingPort = "localhost:8090"
|
|
PromHostAndPort = "localhost:2111"
|
|
RootCAPath = ""
|
|
SocketFolder = "/usr/local/steward/tmp"
|
|
StartPubREQHello = 60
|
|
SubscribersDataFolder = "/usr/local/steward/data"
|
|
TCPListener = ""
|
|
EOF
|
|
|
|
# ------- create systemctl
|
|
progName="steward"
|
|
systemctlFile=/etc/systemd/system/$progName.service
|
|
|
|
if test -f "$systemctlFile"; then
|
|
if ! systemctl disable $progName.service >/dev/null 2>&1; then
|
|
echo "*" error: systemctl disable progName.service
|
|
exit 1
|
|
fi
|
|
|
|
if ! systemctl stop $progName.service >/dev/null 2>&1; then
|
|
echo "*" error: systemctl stop $progName.service
|
|
exit 1
|
|
fi
|
|
|
|
if ! rm $systemctlFile >/dev/null 2>&1; then
|
|
echo "*" error: removing $systemctlFile service file
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
#echo "*" creating systemd $progName.service
|
|
cat >$systemctlFile <<EOF
|
|
[Unit]
|
|
Description=http->${progName} service
|
|
Documentation=https://github.com/postmannen/ctrl
|
|
After=network-online.target nss-lookup.target
|
|
Requires=network-online.target nss-lookup.target
|
|
|
|
[Service]
|
|
ExecStart=env CONFIG_FOLDER=/usr/local/steward/etc /usr/local/steward/steward
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
# ------- generate nats keys
|
|
|
|
errorMessage=$(
|
|
# Redirect stderr to stdout for all command with the closure.
|
|
{
|
|
# Generate private nk key
|
|
/usr/local/bin/nk -gen user >$workdir/seed.txt &&
|
|
# Generate public nk key
|
|
/usr/local/bin/nk -inkey $workdir/seed.txt -pubout >$workdir/user.txt &&
|
|
chmod 600 $workdir/seed.txt &&
|
|
chmod 600 $workdir/user.txt &&
|
|
systemctl enable $progName.service &&
|
|
systemctl start $progName.service
|
|
} 2>&1
|
|
)
|
|
|
|
# ------- We're done, send output back to ssh client
|
|
|
|
# Check if all went ok with the previous command sequence, or if any errors happened.
|
|
# We return any result back to the ssh sessions which called this script by echoing
|
|
# the result, and do an exit <error code>.
|
|
# We can return one line back, so if more values are needed to be returned, they have
|
|
# to be formated into the same line.
|
|
#
|
|
# All went ok.
|
|
if [ $? -eq 0 ]; then
|
|
user=$(cat $workdir/user.txt)
|
|
echo "nkey-user=$user"
|
|
exit 0
|
|
# An error happened.
|
|
else
|
|
echo "failed executing script: $errorMessage"
|
|
exit 1
|
|
fi
|