chore(scripts): boot commands also need node name and cookie

This commit is contained in:
Zaiming Shi 2021-03-24 15:17:24 +01:00 committed by Zaiming (Stone) Shi
parent 6476a5ea92
commit a898f6be1e
1 changed files with 30 additions and 27 deletions

View File

@ -278,7 +278,8 @@ if [ -z "$NAME_ARG" ]; then
NODENAME="${EMQX_NODE_NAME:-}" NODENAME="${EMQX_NODE_NAME:-}"
# compatible with docker entrypoint # compatible with docker entrypoint
[ -z "$NODENAME" ] && [ -n "$EMQX_NAME" ] && [ -n "$EMQX_HOST" ] && NODENAME="${EMQX_NAME}@${EMQX_HOST}" [ -z "$NODENAME" ] && [ -n "$EMQX_NAME" ] && [ -n "$EMQX_HOST" ] && NODENAME="${EMQX_NAME}@${EMQX_HOST}"
if [ -z "$NODENAME" ] && [ "$IS_BOOT_COMMAND" = 'no' ]; then if [ -z "$NODENAME" ]; then
if [ "$IS_BOOT_COMMAND" = 'no' ]; then
# for non-boot commands, inspect vm.<time>.args for node name # for non-boot commands, inspect vm.<time>.args for node name
# shellcheck disable=SC2012,SC2086 # shellcheck disable=SC2012,SC2086
LATEST_VM_ARGS="$(ls -t $RUNNER_DATA_DIR/configs/vm.*.args | head -1)" LATEST_VM_ARGS="$(ls -t $RUNNER_DATA_DIR/configs/vm.*.args | head -1)"
@ -291,6 +292,7 @@ if [ -z "$NAME_ARG" ]; then
# for boot commands, inspect emqx.conf for node name # for boot commands, inspect emqx.conf for node name
NODENAME=$(grep -E '^[ \t]*node.name[ \t]*=[ \t]*' "$RUNNER_ETC_DIR/emqx.conf" 2> /dev/null | tail -1 | cut -d = -f 2-) NODENAME=$(grep -E '^[ \t]*node.name[ \t]*=[ \t]*' "$RUNNER_ETC_DIR/emqx.conf" 2> /dev/null | tail -1 | cut -d = -f 2-)
fi fi
fi
if [ -z "$NODENAME" ]; then if [ -z "$NODENAME" ]; then
echoerr "Failed to resolve emqx node name" echoerr "Failed to resolve emqx node name"
if [ "$IS_BOOT_COMMAND" = 'yes' ]; then if [ "$IS_BOOT_COMMAND" = 'yes' ]; then
@ -299,9 +301,8 @@ if [ -z "$NAME_ARG" ]; then
echoerr "Maybe set environment variable ENQX_NODE_NAME='name@host.name'" echoerr "Maybe set environment variable ENQX_NODE_NAME='name@host.name'"
echoerr "or set EMQX_NAME='name' EMQX_HOST='host.name'" echoerr "or set EMQX_NAME='name' EMQX_HOST='host.name'"
exit 1 exit 1
else
NAME_ARG="-name ${NODENAME# *}"
fi fi
NAME_ARG="-name ${NODENAME# *}"
fi fi
# Extract the name type and name from the NAME_ARG for REMSH # Extract the name type and name from the NAME_ARG for REMSH
@ -312,11 +313,11 @@ export ESCRIPT_NAME="$NODENAME"
PIPE_DIR="${PIPE_DIR:-/$RUNNER_DATA_DIR/${WHOAMI}_erl_pipes/$NAME/}" PIPE_DIR="${PIPE_DIR:-/$RUNNER_DATA_DIR/${WHOAMI}_erl_pipes/$NAME/}"
# COOKIE is only needed for non-boot commands
# so, either read environment variable override
# or inspect vm.<time>.args
COOKIE="${EMQX_NODE_COOKIE:-}" COOKIE="${EMQX_NODE_COOKIE:-}"
if [ -z "$COOKIE" ] && [ "$IS_BOOT_COMMAND" = 'no' ]; then if [ -z "$COOKIE" ]; then
if [ "$IS_BOOT_COMMAND" = 'yes' ]; then
COOKIE=$(grep -E '^[ \t]*node.cookie[ \t]*=[ \t]*' "$RUNNER_ETC_DIR/emqx.conf" 2> /dev/null | tail -1 | cut -d = -f 2-)
else
# shellcheck disable=SC2012,SC2086 # shellcheck disable=SC2012,SC2086
LATEST_VM_ARGS="$(ls -t $RUNNER_DATA_DIR/configs/vm.*.args | head -1)" LATEST_VM_ARGS="$(ls -t $RUNNER_DATA_DIR/configs/vm.*.args | head -1)"
if [ -z "$LATEST_VM_ARGS" ]; then if [ -z "$LATEST_VM_ARGS" ]; then
@ -324,10 +325,12 @@ if [ -z "$COOKIE" ] && [ "$IS_BOOT_COMMAND" = 'no' ]; then
exit 1 exit 1
fi fi
COOKIE="$(grep -E '^-setcookie' "$LATEST_VM_ARGS" | awk '{print $2}')" COOKIE="$(grep -E '^-setcookie' "$LATEST_VM_ARGS" | awk '{print $2}')"
if [ -z "$COOKIE" ]; then fi
fi
if [ -z "$COOKIE" ]; then
echoerr "Please set node.cookie in $RUNNER_ETC_DIR/emqx.conf or override from environment variable EMQX_NODE_COOKIE" echoerr "Please set node.cookie in $RUNNER_ETC_DIR/emqx.conf or override from environment variable EMQX_NODE_COOKIE"
exit 1 exit 1
fi
fi fi
# Support for IPv6 Dist. See: https://github.com/emqtt/emqttd/issues/1460 # Support for IPv6 Dist. See: https://github.com/emqtt/emqttd/issues/1460