update
This commit is contained in:
@@ -69,12 +69,30 @@ deploy_local_broker() {
|
||||
fail "broker did not become healthy within 150 seconds"
|
||||
}
|
||||
|
||||
read_env_setting() {
|
||||
local key="$1"
|
||||
local value
|
||||
|
||||
value="$(
|
||||
sed -n "s/^[[:space:]]*${key}[[:space:]]*=[[:space:]]*//p" .env |
|
||||
tail -n 1
|
||||
)"
|
||||
value="${value#"${value%%[![:space:]]*}"}"
|
||||
value="${value%"${value##*[![:space:]]}"}"
|
||||
value="${value#\"}"
|
||||
value="${value%\"}"
|
||||
value="${value#\'}"
|
||||
value="${value%\'}"
|
||||
printf '%s' "$value"
|
||||
}
|
||||
|
||||
update_peer_broker() {
|
||||
local listen_addr
|
||||
local local_address
|
||||
local peer_host="${TAPM_UPDATE_PEER_HOST:-}"
|
||||
local ssh_user="${TAPM_UPDATE_SSH_USER:-root}"
|
||||
local peer_list="${TAPM_UPDATE_PEERS:-}"
|
||||
local ssh_user="${TAPM_UPDATE_SSH_USER:-}"
|
||||
local remote_update_path='/opt/idssys/ta-deployment-broker/update.sh'
|
||||
local peer_host
|
||||
local raw_peer
|
||||
local -a peer_hosts
|
||||
local -a ssh_options=(
|
||||
-o BatchMode=yes
|
||||
-o ConnectTimeout=5
|
||||
@@ -83,33 +101,33 @@ update_peer_broker() {
|
||||
)
|
||||
|
||||
[[ -f .env ]] || fail ".env was not found in ${SCRIPT_DIR}"
|
||||
if [[ -z "$peer_host" ]]; then
|
||||
listen_addr="$(
|
||||
sed -n 's/^[[:space:]]*TAPM_LISTEN_ADDR[[:space:]]*=[[:space:]]*//p' .env |
|
||||
tail -n 1
|
||||
)"
|
||||
listen_addr="${listen_addr#\"}"
|
||||
listen_addr="${listen_addr%\"}"
|
||||
listen_addr="${listen_addr#\'}"
|
||||
listen_addr="${listen_addr%\'}"
|
||||
local_address="${listen_addr%:*}"
|
||||
case "$local_address" in
|
||||
10.10.1.121) peer_host='10.10.1.122' ;;
|
||||
10.10.1.122) peer_host='10.10.1.121' ;;
|
||||
*) fail "unable to determine peer from TAPM_LISTEN_ADDR=${listen_addr}" ;;
|
||||
esac
|
||||
if [[ -z "$peer_list" ]]; then
|
||||
peer_list="$(read_env_setting TAPM_UPDATE_PEERS)"
|
||||
fi
|
||||
[[ -n "$peer_list" ]] ||
|
||||
fail "TAPM_UPDATE_PEERS is not configured in .env"
|
||||
if [[ -z "$ssh_user" ]]; then
|
||||
ssh_user="$(read_env_setting TAPM_UPDATE_SSH_USER)"
|
||||
fi
|
||||
ssh_user="${ssh_user:-root}"
|
||||
|
||||
printf 'Checking peer broker at %s...\n' "$peer_host"
|
||||
if ! ssh "${ssh_options[@]}" "${ssh_user}@${peer_host}" true; then
|
||||
printf 'WARNING: peer %s is unavailable over SSH; its update was skipped.\n' "$peer_host" >&2
|
||||
return 0
|
||||
fi
|
||||
if ! ssh "${ssh_options[@]}" "${ssh_user}@${peer_host}" \
|
||||
"TAPM_UPDATE_LOCAL_ONLY=1 ${remote_update_path} --local-only"; then
|
||||
fail "peer ${peer_host} is reachable, but its broker update failed"
|
||||
fi
|
||||
printf 'Peer broker at %s completed successfully.\n' "$peer_host"
|
||||
IFS=',' read -r -a peer_hosts <<< "$peer_list"
|
||||
for raw_peer in "${peer_hosts[@]}"; do
|
||||
peer_host="${raw_peer#"${raw_peer%%[![:space:]]*}"}"
|
||||
peer_host="${peer_host%"${peer_host##*[![:space:]]}"}"
|
||||
[[ -n "$peer_host" ]] || continue
|
||||
|
||||
printf 'Checking peer broker at %s...\n' "$peer_host"
|
||||
if ! ssh "${ssh_options[@]}" "${ssh_user}@${peer_host}" true; then
|
||||
printf 'WARNING: peer %s is unavailable over SSH; its update was skipped.\n' "$peer_host" >&2
|
||||
continue
|
||||
fi
|
||||
if ! ssh "${ssh_options[@]}" "${ssh_user}@${peer_host}" \
|
||||
"TAPM_UPDATE_LOCAL_ONLY=1 ${remote_update_path} --local-only"; then
|
||||
fail "peer ${peer_host} is reachable, but its broker update failed"
|
||||
fi
|
||||
printf 'Peer broker at %s completed successfully.\n' "$peer_host"
|
||||
done
|
||||
}
|
||||
|
||||
if ((POST_PULL == 0)); then
|
||||
|
||||
Reference in New Issue
Block a user