Update nodemgmt-scripts.sh

This commit is contained in:
2024-01-26 11:06:26 -06:00
parent 95f8230c75
commit 5a4b897035

View File

@@ -301,6 +301,7 @@ KEEPALIVE-CONFIG() {
NODEUPDATES() {
start=`date +%s`
cw=40;
rm -f /tmp/.nodeupdate.*
if [ "${1}" = "report" ]; then
unset idsCL idsBG idsST
idsCL=('')
@@ -325,16 +326,33 @@ NODEUPDATES() {
echo
ncount=0
for NTYPE in "${NM_NODE_TYPES[@]}"; do
var=${NTYPE}_HOSTS[@]
for nip in "${!var}"; do
if [[ ${RUN_NODE_IP} == *"${nip}"* ]]; then
nip='localhost '
fi
NODEUPDATE "${nip}" "${2}" "${NMCMD}"
NODEUPDATE "${nip}" "${2}" "${NMCMD}" &
((ncount++))
done
echo
done
nc_count=0; completed=false
until [ "${completed}" == "true" ]; do
for nodecmd in /tmp/.nodeupdate.*.done; do
if [[ "${nodecmd}" != *"*"* ]]; then
nodecmd_output=$(cat ${nodecmd})
[ "${nodecmd_output}" != "" ] && echo -e "${nodecmd_output}\n"
rm -f ${nodecmd}
((nc_count++))
fi
done
if [ ${nc_count} -eq ${ncount} ]; then
completed=true
break
fi
sleep 2s
done
echo -e "${idsCL[Green]}All Nodes have been Updated.${idsCL[Default]}"
@@ -356,44 +374,47 @@ NODEUPDATE(){
fi
NCMD="ssh -tq -o ConnectTimeout=1 -o ConnectionAttempts=1 root@${nip}"
NODE="${NM_HOSTNAMES[${nip}]} [${nip}]"
tmpfile=/tmp/.nodeupdate.${NM_HOSTNAMES[${nip}]// /-}
touch ${tmpfile}.running
if [ ${noup} -eq 0 ]; then
c=0; spca=''; spc1=`expr ${cw} - ${#NODE}`; until [ $c = ${spc1} ]; do spca="${spca} "; c=`expr $c + 1`; done
echo -en "Updating ${NODE}${spca}"
echo -en "Updating ${NODE}${spca}" >> ${tmpfile}.running
fi
betacheck=$(BETACHECK)
if [ "${nip}" != "100.100.2.1" ] && [ "${nip}" != "10.2.1.1" ] && [ ! -f ${NM_TMPFOLDER}/${nip}.down ]; then
if [ "${betacheck}" == "false" ]; then
if [ "${2}" != "sync" ]; then
[ ${noup} -eq 0 ] && echo -en " ~ ${idsCL[LightCyan]}NodeMGMT${idsCL[Default]} : "
[ ${noup} -eq 0 ] && echo -en " ~ ${idsCL[LightCyan]}NodeMGMT${idsCL[Default]} : " >> ${tmpfile}.running
if [ "$(ssh -o BatchMode=yes -o ConnectTimeout=3 root@${nip} echo ok 2>&1)" != "ok" ]; then
echo -e "${idsCL[Yellow]}New server, needs SSH credentials${idsCL[Default]}"
echo -e "${idsCL[Yellow]}[${nip}] New server, needs SSH credentials${idsCL[Default]}"
ssh-copy-id root@${nip}
fi
if ! ${NCMD} command -v nodemgmt > /dev/null; then
${NCMD} "bash <(curl -sL https://go.scity.us/install-nodemgmt)" >/dev/null 2>&1
${NMCMD} rsync -az ${NM_FOLDER}/conf/*.inc ${NM_FOLDER}/conf/*.conf root@${nip}:${NM_FOLDER}/conf/ & >/dev/null 2>&1
[ "${NM_GITPASS}" != "" ] && [ "${NM_GITUSER}" == "voltron" ] && ${NMCMD} "bash <(curl -sL https://go.scity.us/add-linux-pass)" >/dev/null 2>&1
echo -e "${idsCL[Green]}Installed & Synced${idsCL[Default]}"
echo -e "${idsCL[Green]}Installed & Synced${idsCL[Default]}" >> ${tmpfile}.running
elif [ ${noup} -eq 1 ]; then
echo -e "${idsCL[Green]}Already Installed${idsCL[Default]}"
echo -e "${idsCL[Green]}Already Installed${idsCL[Default]}" >> ${tmpfile}.running
else
${NCMD} "nodemgmt update q"
${NCMD} "nodemgmt update q" >> ${tmpfile}.running
fi
else
echo -en " ~ ${idsCL[LightCyan]}Sync Shared Nodemgmt Defaults${idsCL[Default]} : "
echo -en " ~ ${idsCL[LightCyan]}Sync Shared Nodemgmt Defaults${idsCL[Default]} : " >> ${tmpfile}.running
${NMCMD} rsync -az ${NM_FOLDER}/conf/*.inc ${NM_FOLDER}/conf/*.conf root@${nip}:${NM_FOLDER}/conf/ & >/dev/null 2>&1
echo -e "${idsCL[Green]}Files Synced${idsCL[Default]}"
echo -e "${idsCL[Green]}Files Synced${idsCL[Default]}" >> ${tmpfile}.running
fi
else
echo -e " ~ ${idsCL[LightCyan]}NodeMGMT${idsCL[Default]} : Skipping BETA Update"
echo -e " ~ ${idsCL[LightCyan]}NodeMGMT${idsCL[Default]} : Skipping BETA Update" >> ${tmpfile}.running
fi
elif [ -f ${NM_TMPFOLDER}/${nip}.down ]; then
echo -e " ~ ${idsCL[LightCyan]}Skipping, host is offline${idsCL[Default]}"
echo -e " ~ ${idsCL[LightCyan]}Skipping, host is offline${idsCL[Default]}" >> ${tmpfile}.running
else
echo -e " ~ ${idsCL[LightCyan]}Skipping${idsCL[Default]}"
echo -e " ~ ${idsCL[LightCyan]}Skipping${idsCL[Default]}" >> ${tmpfile}.running
fi
mv ${tmpfile}.running ${tmpfile}.done
}
ADD_LOGROTATE_CRONTAB(){