From 49f47d15a87e9489865b39b1ec4f6745d4dd6156 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Mon, 15 May 2023 09:45:17 -0500 Subject: [PATCH] Update powerwall.sh --- powerwall.sh | 76 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 25 deletions(-) diff --git a/powerwall.sh b/powerwall.sh index b73d0731..385a8f05 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -326,12 +326,12 @@ STOP_SERVICE(){ } SHUTDOWN_MAIN(){ - # SHUTDOWN_SERVERS MAIN + SHUTDOWN_SERVERS MAIN echo } SHUTDOWN_SYS(){ - # SHUTDOWN_SERVERS SYS - # curl --data "cmd=PWRoff" http://10.10.0.61/cmd + SHUTDOWN_SERVERS SYS + curl --data "cmd=PWRoff" http://10.10.0.61/cmd echo } SHUTDOWN_CRIT(){ @@ -345,31 +345,56 @@ SHUTDOWN_CRIT(){ SHUTDOWN_SERVERS(){ touch $FOLDER/shutdown - HOSTS=${1}HOSTS[@] - for ESXIHOST in "${!HOSTS}"; do - echo "Shutting Down: ${ESXIHOST}" - /usr/bin/ssh root@${ESXIHOST} "cp /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async.sh /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async-${ESXIHOST}.sh" - /usr/bin/ssh root@${ESXIHOST} "cp /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/esxidown.sh /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/esxidown-${ESXIHOST}.sh" - /usr/bin/ssh root@${ESXIHOST} "sed -i 's/\$SCRIPTPATH\/esxidown.sh/\$SCRIPTPATH\/esxidown-${ESXIHOST}.sh/g' /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async-${ESXIHOST}.sh" - /usr/bin/ssh root@${ESXIHOST} "/vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async-${ESXIHOST}.sh" - done - for ESXIHOST in "${!HOSTS}"; do - echo -en "Waiting for Host (${ESXIHOST}) to shutdown... " - while ping -qw 10 -c3 "${ESXIHOST}">/dev/null 2>&1; do - sleep 1 - done - echo "Ok" - done + # HOSTS=${1}HOSTS[@] + # for ESXIHOST in "${!HOSTS}"; do + # echo "Shutting Down: ${ESXIHOST}" + # /usr/bin/ssh root@${ESXIHOST} "cp /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async.sh /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async-${ESXIHOST}.sh" + # /usr/bin/ssh root@${ESXIHOST} "cp /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/esxidown.sh /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/esxidown-${ESXIHOST}.sh" + # /usr/bin/ssh root@${ESXIHOST} "sed -i 's/\$SCRIPTPATH\/esxidown.sh/\$SCRIPTPATH\/esxidown-${ESXIHOST}.sh/g' /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async-${ESXIHOST}.sh" + # /usr/bin/ssh root@${ESXIHOST} "/vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async-${ESXIHOST}.sh" + # done + if [ "${1}" = "MAIN" ]; then - /opt/idssys/powerwall/esxi-scripts/sys-iscsi-shutdown.ps1 10.10.2.17 >/dev/null 2>&1 + for ESXIHOST in "${ESXIHOSTS[@]}"; do + echo "Shutting Down: ${ESXIHOST}" + /opt/idssys/powerwall/esxi-scripts/iscsi-vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 + done + for ESXIHOST in "${MAINHOSTS[@]}"; do + echo "Shutting Down: ${ESXIHOST}" + /opt/idssys/powerwall/esxi-scripts/host-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 + /opt/idssys/powerwall/esxi-scripts/iscsi-server-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 + + ssh root@${ESXIHOST} 'esxcli system shutdown poweroff -d 10 -r "Automated ESXi host shutdown"' + + done - /usr/bin/ssh root@10.10.2.10 "/vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async-${ESXIHOST}.sh" - echo -en "Waiting for iSCSI-Server to shutdown... " - while ping -qw 10 -c3 "${ESXIHOST}">/dev/null 2>&1; do - sleep 1 - done - echo "Ok" + for ESXIHOST in "${MAINHOSTS[@]}"; do + echo -en "Waiting for Host (${ESXIHOST}) to shutdown... " + while ping -qw 10 -c3 "${ESXIHOST}">/dev/null 2>&1; do + sleep 1 + done + echo "Ok" + done + + elif [ "${1}" = "SYS" ]; then + for ESXIHOST in "${SYSHOSTS[@]}"; do + echo "Shutting Down: ${ESXIHOST}" + /opt/idssys/powerwall/esxi-scripts/host-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 + /opt/idssys/powerwall/esxi-scripts/iscsi-server-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 + + ssh root@${ESXIHOST} 'esxcli system shutdown poweroff -d 10 -r "Automated ESXi host shutdown"' + + done + + for ESXIHOST in "${SYSHOSTS[@]}"; do + echo -en "Waiting for Host (${ESXIHOST}) to shutdown... " + while ping -qw 10 -c3 "${ESXIHOST}">/dev/null 2>&1; do + sleep 1 + done + echo "Ok" + done + fi } SHUTDOWN_SERVER(){ @@ -422,6 +447,7 @@ fi iscsi-vm-shutdown) ISCSIVMSHUTDOWN;; shutdownhost) SHUTDOWN_SERVER ${2};; + shutdown_servers) SHUTDOWN_SERVERS ${2};; checktemp_service) if [ "${2}" = "stop" ]; then