diff --git a/defaults.inc b/defaults.inc index d387ce47..c707cad1 100755 --- a/defaults.inc +++ b/defaults.inc @@ -43,6 +43,7 @@ POWERWALL_SERVICES['powerlogger']='monitor-powerlogger' MAINHOSTS=10.10.2.10,10.10.2.11,10.10.2.12 SYSHOSTS=10.10.2.17 ESXIHOSTS="${MAINHOSTS},${SYSHOSTS}" +VCENTERHOST=10.10.1.30 IFS=, ESXIHOSTS=(${ESXIHOSTS}) diff --git a/esxi-scripts/host-shutdown.ps1 b/esxi-scripts/vm-shutdown.ps1 similarity index 100% rename from esxi-scripts/host-shutdown.ps1 rename to esxi-scripts/vm-shutdown.ps1 diff --git a/powerwall.sh b/powerwall.sh index 58009b37..23a7b3f7 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -356,17 +356,30 @@ SHUTDOWN_SERVERS(){ if [ "${1}" = "MAIN" ]; then + echo -en "Disabling CLS in vCenter ... " + ssh root@${VCENTERHOST} "sed -i '//{n;s/.*<\/enabled>/False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" + ssh root@${VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" + ssh root@${VCENTERHOST} "service-control --start vmware-vpxd >/dev/null 2>&1" + echo "Done" + for ESXIHOST in "${ESXIHOSTS[@]}"; do - echo "Shutting Down: ${ESXIHOST}" + echo -en "Stopping iSCSI VM's on: ${ESXIHOST} ... " /opt/idssys/powerwall/esxi-scripts/iscsi-vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 + echo "Done" done + sleep 1m for ESXIHOST in "${MAINHOSTS[@]}"; do - echo "Shutting Down: ${ESXIHOST}" - /opt/idssys/powerwall/esxi-scripts/host-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 + echo -en "Stopping Remaining VM's on: ${ESXIHOST} ... " + ssh root@${ESXIHOST} 'esxcli system maintenanceMode set -e true -t 0' + /opt/idssys/powerwall/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 /opt/idssys/powerwall/esxi-scripts/iscsi-server-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 - + echo "Done" + done + sleep 1m + for ESXIHOST in "${MAINHOSTS[@]}"; do + echo -en "Shutting down host: ${ESXIHOST} ..." ssh root@${ESXIHOST} 'esxcli system shutdown poweroff -d 10 -r "Automated ESXi host shutdown"' - + echo "Done" done for ESXIHOST in "${MAINHOSTS[@]}"; do @@ -374,16 +387,17 @@ SHUTDOWN_SERVERS(){ while ping -qw 10 -c3 "${ESXIHOST}">/dev/null 2>&1; do sleep 1 done - echo "Ok" + echo "Done" 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/vm-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"' + ssh root@${ESXIHOST} 'esxcli system shutdown poweroff -d 10 -r "Automated ESXi host shutdown"' & + ssh root@${ESXIHOST} 'esxcli system maintenanceMode set -e false -t 0' done