This commit is contained in:
2023-11-02 13:50:29 -05:00
parent 687da13a4c
commit 8b82ae6dec
3 changed files with 58 additions and 49 deletions

View File

@@ -4,6 +4,6 @@
Connect-VIServer -Server $args[0] -Protocol https -User $ESXiUsername -Password $ESXiPassword | Out-Null
Get-VM | Where {$_.Name -like '*iSCSI*'} | Shutdown-VMGuest -Confirm:$false
Get-VM | Where {$_.Name -like '*iSCSI-Server*'} | Shutdown-VMGuest -Confirm:$false
exit 0

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env pwsh
. /opt/idssys/powerwall/settings.ps1
Connect-VIServer -Server $args[0] -Protocol https -User $ESXiUsername -Password $ESXiPassword | Out-Null
Get-VM | Where {$_.Name -like '*iSCSI-Systems*'} | Shutdown-VMGuest -Confirm:$false
exit 0

View File

@@ -593,7 +593,7 @@ CHECKPOWER(){
fi
echo -e "${idsCL[LightCyan]}ServerRack Amps ${idsCL[Default]}: ${idsCL[Green]}${APCPDU_AMP}'A${idsCL[Default]}"
echo -e "${idsCL[LightCyan]}ServerRack Wattage ${idsCL[Default]}: ${idsCL[Green]}${APCPDU_WATT_disp}'W${idsCL[Default]}"
echo -e "${idsCL[LightCyan]}ServerRack Wattage ${idsCL[Default]}: ${idsCL[Green]}${APCPDU_WATT_disp}'W ~ estimate${idsCL[Default]}"
echo
if [ "${SVRRM_VOLT}" != "" ]; then
@@ -605,8 +605,8 @@ CHECKPOWER(){
VOLT_DROP=`echo "scale=1; ${OUTPUTV2}-${SVRRM_VOLT}" | bc`
fi
echo -e "${idsCL[LightCyan]}NetworkRack Amps ${idsCL[Default]}: ${idsCL[Green]}${NETRK_AMP}'A${idsCL[Default]}"
echo -e "${idsCL[LightCyan]}NetworkRack Wattage ${idsCL[Default]}: ${idsCL[Green]}${NETRK_WATT}'W${idsCL[Default]}"
echo -e "${idsCL[LightCyan]}NetworkRack Amps ${idsCL[Default]}: ${idsCL[Green]}${NETRK_AMP}'A ~ estimate${idsCL[Default]}"
echo -e "${idsCL[LightCyan]}NetworkRack Wattage ${idsCL[Default]}: ${idsCL[Green]}${NETRK_WATT}'W ~ estimate${idsCL[Default]}"
echo
echo -e "${idsCL[LightCyan]}Voltage ${idsCL[Default]}: ${idsCL[Green]}${SVRRM_VOLT}'V${idsCL[Default]}"
@@ -734,7 +734,7 @@ BATT VOLTAGE: ${BATTVOLT}V" 1
echo "($datetime) - ${BATTVOLT}V - Shutting down main servers..." >> ${PW_LOGPOWER}
SENDNOTICE "BATT-VOLT LOW: SHUTDOWN MAIN SERVERS" "($datetime) Battery Voltage LOW: ${BATTVOLT}V
Shutting down main servers" 1
SHUTDOWN_MAIN power &
SHUTDOWN_MAIN POWER &
battstatus=2
fi
@@ -746,7 +746,7 @@ Shutting down main servers" 1
echo "($datetime) - ${BATTVOLT}V - Shutting down all remaining servers..." >> ${PW_LOGPOWER}
SENDNOTICE "BATT-VOLT REALLY LOW: SHUTDOWN SYS SERVERS" "($datetime) Battery Voltage REALLY LOW: ${BATTVOLT}V
Shutting down all servers" 1
SHUTDOWN_SYS power &
SHUTDOWN_SYS POWER &
battstatus=3
@@ -921,12 +921,12 @@ CHECK_SERVICES(){
}
SHUTDOWN_MAIN(){
if [ "${1}" == "ServerRoomTH"]; then
if [ "${1}" == "ServerRoomTH"] || [ "${1}" == "TEMP"]; then
SHUTDOWN_SERVERS MAIN ${2}
reason='Server Room Overheated!'
sendnotice=true
elif [ "${1}" == "power"]; then
elif [ "${1}" == "POWER"]; then
SHUTDOWN_SERVERS MAIN ${2}
reason='Low Power!'
sendnotice=true
@@ -945,12 +945,12 @@ SHUTDOWN_MAIN(){
echo
}
SHUTDOWN_SYS(){
if [ "${1}" == "ServerRoomTH"]; then
if [ "${1}" == "ServerRoomTH"] || [ "${1}" == "TEMP"]; then
SHUTDOWN_SERVERS SYS ${2}
reason='Server Room Overheated!'
sendnotice=true
elif [ "${1}" == "power"]; then
elif [ "${1}" == "POWER"]; then
SHUTDOWN_SERVERS SYS ${2}
reason='Low Power!'
sendnotice=true
@@ -989,15 +989,7 @@ SHUTDOWN_CRIT(){
}
SHUTDOWN_SERVERS(){
# 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
TEST=true
echo "($datetime) - Shutting down ${1} servers" >> ${PW_LOGFILE}
[ "${TEST}" == "true" ] && echo "RUNNING IN TEST MODE">>${PW_LOGFILE}
@@ -1005,56 +997,57 @@ SHUTDOWN_SERVERS(){
if [ "${1^^}" == "MAIN" ] || [ "${1^^}" == "ALL" ]; then
if [ ! -f $FOLDER/shutdown.main ]; then
touch $FOLDER/shutdown.main
echo -en "Disabling CLS in vCenter ... "
if [ "${TEST}" != "true" ]; then
ssh root@${PW_VCENTERHOST} "sed -i '/<domain-c1001>/{n;s/<enabled>.*<\/enabled>/<enabled>False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1
ssh root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1
ssh root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1
run=$(ssh root@${PW_VCENTERHOST} "sed -i '/<domain-c1001>/{n;s/<enabled>.*<\/enabled>/<enabled>False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1)
run=$(ssh root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1)
run=$(ssh root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1)
fi
echo "Done"
for ESXIHOST in "${PW_MAINSITE_HOSTS[@]}"; do
echo -en "Stopping iSCSI VM's on: ${ESXIHOST} ... "
[ "${TEST}" != "true" ] && ${PW_FOLDER}/esxi-scripts/iscsi-vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
[ "${TEST}" != "true" ] && run=$(${PW_FOLDER}/esxi-scripts/iscsi-vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1)
echo "Done"
done
for ESXIHOST in "${PW_MAINSITE_HOSTS[@]}"; do
echo -en "Enabling Maintenance Mode on: ${ESXIHOST} ... "
[ "${TEST}" != "true" ] && ssh root@${ESXIHOST} 'esxcli system maintenanceMode set -e true -t 0' &
[ "${TEST}" != "true" ] && run=$(${PW_FOLDER}/esxi-scripts/host-maintenance_mode.ps1 ${ESXIHOST} & >/dev/null 2>&1)
echo "Done"
done
sleep 1m
for ESXIHOST in "${PW_MAINSITE_HOSTS[@]}"; do
echo -en "Verifying iSCSI VM's stopped on: ${ESXIHOST} ... "
[ "${TEST}" != "true" ] && ${PW_FOLDER}/esxi-scripts/iscsi-vm-shutdown-verify.ps1 ${ESXIHOST} >/dev/null 2>&1
[ "${TEST}" != "true" ] && run=$(${PW_FOLDER}/esxi-scripts/iscsi-vm-shutdown-verify.ps1 ${ESXIHOST} >/dev/null 2>&1)
echo "Done"
done
for ESXIHOST in "${PW_MAINHOSTS[@]}"; do
echo -en "Stopping Remaining VM's on: ${ESXIHOST} ... "
if [ "${TEST}" != "true" ]; then
${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
${PW_FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
run=$(${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1)
run=$(${PW_FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1)
fi
echo "Done"
done
for ESXIHOST in "${PW_MAINHOSTS[@]}"; do
echo -en "Shutting down host & disabling Maintenance Mode: ${ESXIHOST} ..."
if [ "${TEST}" != "true" ]; then
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'
run=$(ssh root@${ESXIHOST} 'esxcli system shutdown poweroff -d 10 -r "Automated ESXi host shutdown"')
run=$(ssh root@${ESXIHOST} 'esxcli system maintenanceMode set -e false -t 0')
fi
echo "Done"
done
for ESXIHOST in "${PW_MAINHOSTS[@]}"; do
echo -en "Waiting for Host (${ESXIHOST}) to shutdown... "
if [ "${TEST}" != "true" ]; then
while ping -qw 10 -c3 "${ESXIHOST}">/dev/null 2>&1; do
sleep 1
done
fi
echo "Done"
done
# for ESXIHOST in "${PW_MAINHOSTS[@]}"; do
# echo -en "Waiting for Host (${ESXIHOST}) to shutdown... "
# if [ "${TEST}" != "true" ]; then
# while ping -qw 10 -c3 "${ESXIHOST}">/dev/null 2>&1; do
# sleep 1
# done
# fi
# echo "Done"
# done
fi
fi
if [ "${1^^}" == "SYS" ] || [ "${1^^}" == "ALL" ]; then
@@ -1062,6 +1055,16 @@ SHUTDOWN_SERVERS(){
if [ ! -f $FOLDER/shutdown.sys ]; then
touch $FOLDER/shutdown.sys
if [ "${1^^}" == "SYS" ]; then
echo -en "Disabling CLS in vCenter ... "
if [ "${TEST}" != "true" ]; then
run=$(ssh root@${PW_VCENTERHOST} "sed -i '/<domain-c1001>/{n;s/<enabled>.*<\/enabled>/<enabled>False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1)
run=$(ssh root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1)
run=$(ssh root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1)
fi
echo "Done"
fi
for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
echo -en "Stopping iSCSI VM's on: ${ESXIHOST} ... "
[ "${TEST}" != "true" ] && ${PW_FOLDER}/esxi-scripts/iscsi-sys-vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
@@ -1069,15 +1072,15 @@ SHUTDOWN_SERVERS(){
done
for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
echo -en "Enabling Maintenance Mode on: ${ESXIHOST} ... "
[ "${TEST}" != "true" ] && ssh root@${ESXIHOST} 'esxcli system maintenanceMode set -e true -t 0' &
echo "Done"
done
sleep 1m
for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
echo -en "Suspending MySQL & LAN-DNS VM's on: ${ESXIHOST} ... "
[ "${TEST}" != "true" ] && ${PW_FOLDER}/esxi-scripts/sys-suspend.ps1 ${ESXIHOST} >/dev/null 2>&1
[ "${TEST}" != "true" ] && run=$(${PW_FOLDER}/esxi-scripts/host-maintenance_mode.ps1 ${ESXIHOST} & >/dev/null 2>&1)
echo "Done"
done
# sleep 1m
# for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
# echo -en "Suspending MySQL & LAN-DNS VM's on: ${ESXIHOST} ... "
# [ "${TEST}" != "true" ] && ${PW_FOLDER}/esxi-scripts/sys-suspend.ps1 ${ESXIHOST} >/dev/null 2>&1
# echo "Done"
# done
for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
echo -en "Shutting Down VM's on: ${ESXIHOST} ... "
if [ "${TEST}" != "true" ]; then
@@ -1149,10 +1152,7 @@ SHUTDOWN_SERVER(){
# echo -e "${idsCL[Green]}Done\n"
echo -en "${idsCL[LightCyan]}Shutting down remaining VM's ... "
if [ "${TEST}" != "true" ]; then
run=$(${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${hostip} >/dev/null 2>&1)
# ${PW_FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${hostip} >/dev/null 2>&1
fi
[ "${TEST}" != "true" ] && run=$(${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${hostip} >/dev/null 2>&1)
echo -e "${idsCL[Green]}Done\n"
echo -en "${idsCL[LightCyan]}Verifying no VMs remain on the host ... "