Update powerwall.sh

This commit is contained in:
2023-10-31 22:34:13 -05:00
parent 85f2d76a0d
commit a3664555b6

View File

@@ -1087,34 +1087,67 @@ SHUTDOWN_SERVERS(){
fi
}
SHUTDOWN_SERVER(){
echo "($datetime) - Shutting down ${1}" >> ${PW_LOGFILE}
TEST=true
echo -en "Enabling Maintenance mode and will wait for iSCSI VM's to begin migrating ... "
[ "${TEST}" != "true" ] && ${PW_FOLDER}/esxi-scripts/host-maintenance_mode.ps1 ${PW_ESXI_HOST_NAMES[${1}]} & >/dev/null 2>&1
sleep 45s
echo "Done"
if [ "${PW_iDRACHOST_SHORTNAMES[${1}]}" != "" ]; then
tmp=${PW_iDRACHOST_SHORTNAMES[${1}]}
hostip=${PW_HOST_ADDRESSES[${tmp}]}
elif [ "${PW_ESXI_HOST_NAMES[${1}]}" != "" ]; then
hostip=${1}
elif [ "${PW_HOST_IDRACS[iDS-vMS-Host${1}]}" != "" ]; then
hostip=${PW_HOST_ADDRESSES[iDS-vMS-Host${1}]}
elif [ "${PW_HOST_IDRACS[${1}]}" != "" ]; then
tmp=${PW_HOST_IDRACS[${1}]}
hostip=${PW_HOST_ADDRESSES[${tmp}]}
else
hostip=''
fi
echo -e "\n${idsCL[Yellow]}ESXi Host Powerdown"
DIVIDER . yellow 75
echo -en "Shutting Down VM's on: ${1} ... "
if [ "${TEST}" != "true" ]; then
${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${1} >/dev/null 2>&1
${PW_FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${1} >/dev/null 2>&1
fi
echo "Done"
if [ "${hostip}" != "" ]; then
host=${PW_ESXI_HOST_NAMES[${hostip}]}
c=0; spcA=''; spc1=`expr 21 - ${#host} - 1`; until [ $c = ${spc1} ]; do spcA="${spcA} "; c=`expr $c + 1`; done
c=0; spcB=''; spc1=`expr 18 - ${#PW_HOST_ADDRESSES[${hostip}]} - 1`; until [ $c = ${spc1} ]; do spcB="${spcB} "; c=`expr $c + 1`; done
echo -en "${idsCL[LightCyan]} Host: ${idsCL[Green]}${host}${spcA}"
echo -en "${idsCL[LightCyan]}Host IP: ${idsCL[Green]}${hostip}${spcB}"
echo -e "${idsCL[LightCyan]}iDrac IP: ${idsCL[Green]}${PW_HOST_IDRACS[${host}]}${idsCL[Default]}"
DIVIDER . yellow 75
echo
echo "($datetime) - Shutting down ${host} (${hostip})" >> ${PW_LOGFILE}
echo -en "${idsCL[LightCyan]}Enabling Maintenance mode and will wait for iSCSI VM's to begin migrating ... "
[ "${TEST}" != "true" ] && ${PW_FOLDER}/esxi-scripts/host-maintenance_mode.ps1 ${PW_ESXI_HOST_NAMES[${hostip}]} & >/dev/null 2>&1
sleep 45s
echo -e "${idsCL[Green]}Done\n"
echo -en "${idsCL[LightCyan]}Shutting Down VM's on: ${host} (${hostip}) ... "
if [ "${TEST}" != "true" ]; then
${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
echo -e "${idsCL[Green]}Done\n"
echo -en "Shutting Down Host: ${1} ... "
if [ "${TEST}" != "true" ]; then
ssh root@${1} 'esxcli system shutdown poweroff -d 10 -r "Automated ESXi host shutdown"' & >/dev/null 2>&1
ssh root@${1} 'esxcli system maintenanceMode set -e false -t 0' >/dev/null 2>&1
fi
echo "Done"
echo -en "${idsCL[LightCyan]}Shutting Down Host: ${host} (${hostip}) ... "
if [ "${TEST}" != "true" ]; then
ssh root@${hostip} 'esxcli system shutdown poweroff -d 10 -r "Automated ESXi host shutdown"' & >/dev/null 2>&1
ssh root@${hostip} 'esxcli system maintenanceMode set -e false -t 0' >/dev/null 2>&1
fi
echo -e "${idsCL[Green]}Done\n"
echo -en "Waiting for Host (${1}) to shutdown ... "
if [ "${TEST}" != "true" ]; then
while ping -qw 10 -c3 "${1}">/dev/null 2>&1; do
sleep 1
done
echo -en "${idsCL[LightCyan]}Waiting for Host ${host} (${hostip}) to shutdown ... "
if [ "${TEST}" != "true" ]; then
while ping -qw 10 -c3 "${hostip}">/dev/null 2>&1; do
sleep 1
done
fi
echo -e "${idsCL[Green]}Done\n"
else
echo -e "${idsCL[LightRed]}Host cannot be found for '${1}'${idsCL[Default]}"
fi
echo "Done"
echo
}
ISCSIVMSHUTDOWN(){
@@ -1361,14 +1394,15 @@ fi
echo -e " ${idsCL[LightYellow]} avg = { noavg='Does not display average' / "
echo -e " #='Num of days for avg' }${idsCL[Default]} --> Defaults to 3 days avg"
echo
echo -e " ${idsCL[Yellow]}shutdownhost {host-ip} ${idsCL[Default]}--> Shutdown host server"
echo -e " ${idsCL[Yellow]}shutdownhost {host} ${idsCL[Default]}--> Shutdown ESXI host and its VMs"
echo -e " ${idsCL[LightYellow]} host = {esxi-ip}, {idrac-ip}, {hostname} or {host-number;0-9}"
echo -e " ${idsCL[Yellow]}iscsi-vm-shutdown {type} ${idsCL[Default]}--> Shutdown VM's running on iSCSI-(PRI or SYS) Datastore(s)"
echo -e " ${idsCL[LightYellow]} type = { main='iSCSI-PRI' / "
echo -e " sys='iSCSI-SYS' }${idsCL[Default]} --> Defaults to main (iSCSI-PRI)"
echo -e " ${idsCL[LightYellow]} type = { sys='iSCSI-SYS' / "
echo -e " main='iSCSI-MAIN' }${idsCL[Default]} --> Defaults to main (iSCSI-PRI)"
echo -e " ${idsCL[Yellow]}shutdown_servers {type} ${idsCL[Default]}--> Shutdown selection of servers"
echo -e " ${idsCL[LightYellow]} type = { main / sys / all }"
echo -e " ${idsCL[Yellow]}hostpower {host} ${idsCL[Default]}--> Control host chassis power"
echo -e " ${idsCL[LightYellow]} host = {idrac-ip}, {esxi-ip}, {hostname} or {host-number;0-9}"
echo -e " ${idsCL[LightYellow]} host = {esxi-ip}, {idrac-ip}, {hostname} or {host-number;0-9}"
echo
# echo
# echo -e " ${idsCL[Yellow]}services {cmd} ${idsCL[Default]}--> Manage all monitor services at once"