This commit is contained in:
2023-12-10 13:11:50 -06:00
parent 2237ee043c
commit 25b7e5cd4c
3 changed files with 184 additions and 117 deletions

View File

@@ -1,5 +1,5 @@
VERS='2.4.6-12092023' VERS='2.4.8-12102023'
noheader=' update service dailytemp ' noheader=' update service dailytemp '
hc_cw=60 hc_cw=60

View File

@@ -0,0 +1,22 @@
#!/usr/bin/env pwsh
. /opt/idssys/powerwall/settings.ps1
Connect-VIServer -Server $args[0] -Protocol https -User $ESXiUsername -Password $ESXiPassword | Out-Null
Get-Datastore | Where {$_.Name -like '*iSCSI-*'} | Get-VM | if ($_.PowerState -eq "PoweredOn") {
Try{
$vm = Get-VM -Name $vmName -ErrorAction Stop
switch($vm.PowerState){
'poweredon' {
sleep 5
}
}
}
Catch{
Write-Host "VM '$($vmName)' not found!"
}
}
exit 0

View File

@@ -1275,6 +1275,7 @@ SHUTDOWN_SERVERS(){
else else
echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}"
fi fi
echo
fi fi
for ESXIHOST in "${PW_MAINHOSTS[@]}"; do for ESXIHOST in "${PW_MAINHOSTS[@]}"; do
@@ -1371,7 +1372,7 @@ SHUTDOWN_SERVERS(){
if [ ! -f ${PW_FOLDER}/shutdown.sys ]; then if [ ! -f ${PW_FOLDER}/shutdown.sys ]; then
touch ${PW_FOLDER}/shutdown.sys touch ${PW_FOLDER}/shutdown.sys
if [ "${2}" == "TEMP" ]; then if [ "${2}" == "TEMP" ] && [ "${2}" != "maintenance" ]; then
MSG="Disabling CLS in vCenter" MSG="Disabling CLS in vCenter"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
@@ -1383,6 +1384,7 @@ SHUTDOWN_SERVERS(){
else else
echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}"
fi fi
echo
fi fi
for ESXIHOST in "${PW_SYSHOSTS[@]}"; do for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
@@ -1422,7 +1424,7 @@ SHUTDOWN_SERVERS(){
done done
echo echo
for ESXIHOST in "${PW_SYSHOSTS[@]}"; do for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
MSG="Shutting Down VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" MSG="Stopping Remaining VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
if [ "${TEST}" != "true" ]; then if [ "${TEST}" != "true" ]; then
@@ -1434,6 +1436,7 @@ SHUTDOWN_SERVERS(){
fi fi
done done
echo echo
if [ "${2}" != "maintenance" ]; then
for ESXIHOST in "${PW_SYSHOSTS[@]}"; do for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
@@ -1447,11 +1450,13 @@ SHUTDOWN_SERVERS(){
done done
echo echo
fi fi
fi
elif [ "${1^^}" == "ALL" ]; then elif [ "${1^^}" == "ALL" ]; then
if [ ! -f ${PW_FOLDER}/shutdown.all ]; then if [ ! -f ${PW_FOLDER}/shutdown.all ]; then
touch ${PW_FOLDER}/shutdown.all touch ${PW_FOLDER}/shutdown.all
if [ "${2}" != "maintenance" ]; then
MSG="Disabling CLS in vCenter" MSG="Disabling CLS in vCenter"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
@@ -1464,6 +1469,8 @@ SHUTDOWN_SERVERS(){
else else
echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}"
fi fi
echo
fi
for ESXIHOST in "${PW_ALLHOSTS[@]}"; do for ESXIHOST in "${PW_ALLHOSTS[@]}"; do
MSG="Stopping all iSCSI VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" MSG="Stopping all iSCSI VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}"
@@ -1490,11 +1497,11 @@ SHUTDOWN_SERVERS(){
done done
echo echo
for ESXIHOST in "${PW_ALLHOSTS[@]}"; do for ESXIHOST in "${PW_ALLHOSTS[@]}"; do
MSG="Verifying iSCSI-SYS VM's stopped on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" MSG="Verifying iSCSI VM's stopped on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
if [ "${TEST}" != "true" ]; then if [ "${TEST}" != "true" ]; then
run=$(${PW_FOLDER}/esxi-scripts/iscsi-sys-vm-shutdown-verify.ps1 ${ESXIHOST} >/dev/null 2>&1) run=$(${PW_FOLDER}/esxi-scripts/iscsi-all-vm-shutdown-verify.ps1 ${ESXIHOST} >/dev/null 2>&1)
echo -e "${idsCL[Green]}Done${idsCL[Default]}" echo -e "${idsCL[Green]}Done${idsCL[Default]}"
else else
echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}"
@@ -1502,7 +1509,7 @@ SHUTDOWN_SERVERS(){
done done
echo echo
for ESXIHOST in "${PW_ALLHOSTS[@]}"; do for ESXIHOST in "${PW_ALLHOSTS[@]}"; do
MSG="Shutting Down VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" MSG="Stopping Remaining VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
if [ "${TEST}" != "true" ]; then if [ "${TEST}" != "true" ]; then
@@ -1514,6 +1521,7 @@ SHUTDOWN_SERVERS(){
fi fi
done done
echo echo
if [ "${2}" != "maintenance" ]; then
for ESXIHOST in "${PW_ALLHOSTS[@]}"; do for ESXIHOST in "${PW_ALLHOSTS[@]}"; do
MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
@@ -1551,11 +1559,13 @@ SHUTDOWN_SERVERS(){
fi fi
echo echo
fi fi
fi
elif [ "${1^^}" == "MAINSITE" ]; then elif [ "${1^^}" == "MAINSITE" ]; then
if [ ! -f ${PW_FOLDER}/shutdown.mainsite ]; then if [ ! -f ${PW_FOLDER}/shutdown.mainsite ]; then
touch ${PW_FOLDER}/shutdown.mainsite touch ${PW_FOLDER}/shutdown.mainsite
if [ "${2}" == "TEMP" ] && [ "${2}" != "maintenance" ]; then
MSG="Disabling CLS in vCenter" MSG="Disabling CLS in vCenter"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
@@ -1563,10 +1573,25 @@ SHUTDOWN_SERVERS(){
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} "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 --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) run=$(ssh root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null & 2>&1" >/dev/null 2>&1)
echo -e "${idsCL[Green]}Done${idsCL[Default]}\n"
else
echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}"
fi
echo
fi
for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do
MSG="Stopping iSCSI VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
if [ "${TEST}" != "true" ]; then
run=$(${PW_FOLDER}/esxi-scripts/iscsi-all-vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1)
echo -e "${idsCL[Green]}Done${idsCL[Default]}" echo -e "${idsCL[Green]}Done${idsCL[Default]}"
else else
echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}"
fi fi
done
echo
for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do
MSG="Enabling Maintenance Mode on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" MSG="Enabling Maintenance Mode on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
@@ -1580,17 +1605,31 @@ SHUTDOWN_SERVERS(){
done done
echo echo
for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do
MSG="Stopping VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" MSG="Verifying iSCSI VM's stopped on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
if [ "${TEST}" != "true" ]; then if [ "${TEST}" != "true" ]; then
run=$(${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1) run=$(${PW_FOLDER}/esxi-scripts/iscsi-all-shutdown-verify.ps1 ${ESXIHOST} >/dev/null 2>&1)
echo -e "${idsCL[Green]}Done${idsCL[Default]}" echo -e "${idsCL[Green]}Done${idsCL[Default]}"
else else
echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}"
fi fi
done done
echo echo
for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do
MSG="Stopping Remaining VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
if [ "${TEST}" != "true" ]; then
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)
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
else
echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}"
fi
done
echo
if [ "${2}" != "maintenance" ]; then
for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do
MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
@@ -1628,11 +1667,13 @@ SHUTDOWN_SERVERS(){
fi fi
echo echo
fi fi
fi
elif [ "${1^^}" == "OFFSITE" ]; then elif [ "${1^^}" == "OFFSITE" ]; then
if [ ! -f ${PW_FOLDER}/shutdown.offsite ]; then if [ ! -f ${PW_FOLDER}/shutdown.offsite ]; then
touch ${PW_FOLDER}/shutdown.offsite touch ${PW_FOLDER}/shutdown.offsite
if [ "${2}" != "maintenance" ]; then
MSG="Disabling CLS in vCenter" MSG="Disabling CLS in vCenter"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
@@ -1644,6 +1685,8 @@ SHUTDOWN_SERVERS(){
else else
echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}"
fi fi
echo
fi
for ESXIHOST in "${PW_OFFSITEHOSTS[@]}"; do for ESXIHOST in "${PW_OFFSITEHOSTS[@]}"; do
MSG="Enabling Maintenance Mode on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" MSG="Enabling Maintenance Mode on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}"
@@ -1658,7 +1701,7 @@ SHUTDOWN_SERVERS(){
done done
echo echo
for ESXIHOST in "${PW_OFFSITEHOSTS[@]}"; do for ESXIHOST in "${PW_OFFSITEHOSTS[@]}"; do
MSG="Stopping VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}" MSG="Stopping Remaining VM's on: ${PW_ESXI_HOST_NAMES[${ESXIHOST}]}"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: " echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
if [ "${TEST}" != "true" ]; then if [ "${TEST}" != "true" ]; then
@@ -1669,6 +1712,7 @@ SHUTDOWN_SERVERS(){
fi fi
done done
echo echo
if [ "${2}" != "maintenance" ]; then
for ESXIHOST in "${PW_OFFSITEHOSTS[@]}"; do for ESXIHOST in "${PW_OFFSITEHOSTS[@]}"; do
MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'" MSG="Wait for VM's to power off, then shutdown '${PW_ESXI_HOST_NAMES[${ESXIHOST}]}'"
c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done c=0; MSG_SPC=''; spc1=`expr ${hc_cw} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
@@ -1683,6 +1727,7 @@ SHUTDOWN_SERVERS(){
echo echo
fi fi
fi fi
fi
} }
MAINT_MODE_VERIFY_SHUTDOWN(){ MAINT_MODE_VERIFY_SHUTDOWN(){
ESXIHOST=${1} ESXIHOST=${1}