From 21bb76a430ee44ea0ed298ca2e6737d0d2a4afd8 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Wed, 31 Jan 2024 10:54:49 -0600 Subject: [PATCH] update --- esxi-scripts/vm-shutdown.ps1 | 20 +------------------- powerwall.sh | 31 +++++++++++++++---------------- 2 files changed, 16 insertions(+), 35 deletions(-) diff --git a/esxi-scripts/vm-shutdown.ps1 b/esxi-scripts/vm-shutdown.ps1 index 826b280c..7d2282f5 100755 --- a/esxi-scripts/vm-shutdown.ps1 +++ b/esxi-scripts/vm-shutdown.ps1 @@ -1,32 +1,14 @@ #!/usr/bin/env pwsh . /opt/idssys/powerwall/settings.ps1 -Connect-VIServer -Server $VCENTERHOST -Protocol https -User $VCENTERUSER -Password $VCENTERPASS # Connect-VIServer -Server $VCENTERHOST -Protocol https -User $VCENTERUSER -Password $VCENTERPASS | Out-Null -write-host connected -#Get-VMHost | Where {$args[0]} | Get-VM | Where {$_.PowerState -like '*On*' -and $_.Name -notlike '*CLS*' -and $_.Name -notlike '*iSCSI*'} | Shutdown-VMGuest -Confirm:$false - $vmhosts=$args[0].Split(",") Foreach ($vmhost in $vmhosts) { write-host $vmhost - Get-VMHost | Where {$_.Name -eq $vmhost} | Get-VM | Where {$_.PowerState -like '*On*' -and $_.Name -notlike '*CLS*' -and $_.Name -notlike '*iSCSI*'} + # Get-VMHost | Where {$_.Name -eq $vmhost} | Get-VM | Where {$_.PowerState -like '*On*' -and $_.Name -notlike '*CLS*' -and $_.Name -notlike '*iSCSI*'} | Shutdown-VMGuest -Confirm:$false } - - -# $vmhosts=Get-VMHost -# & $vmhosts=$vmhosts | Where {$args[0]} -# write-host $COMMAND - - -# $COMMAND="Get-VMHost | Where {"+$args[0]+"} | Get-VM" -# write-host $COMMAND -# & $COMMAND | Where {$_.PowerState -like '*On*' -and $_.Name -notlike '*CLS*' -and $_.Name -notlike '*iSCSI*'} - # Disconnect-VIServer -Server $VCENTERHOST -Force –Confirm:$false - - -#$_.Name -eq 'ids-vms1.scity.us' -or $_.Name -eq 'ids-vms7.scity.us' \ No newline at end of file diff --git a/powerwall.sh b/powerwall.sh index c17f8ac7..4fd1f70a 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -11,7 +11,7 @@ source /opt/idssys/powerwall/inc/power.inc.sh source /opt/idssys/powerwall/inc/temp.inc.sh -# TEST=true +TEST=true shopt -s lastpipe @@ -416,21 +416,20 @@ SHUTDOWN_SERVER(){ echo fi - for ESXIHOST in "${ESXI_HOSTS[@]}"; do - MSG="Shutting down 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[White]}${MSG//${PW_ESXI_HOST_NAMES[${ESXIHOST}]}/${idsCL[LightCyan]}${PW_ESXI_HOST_NAMES[${ESXIHOST}]}}${idsCL[White]}${MSG_SPC}: " - if [ "${TEST}" != "true" ]; then - if [ "$(ipmitool -I lanplus -H ${PW_HOST_IDRACS[${PW_ESXI_HOST_NAMES[${ESXIHOST}]}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" chassis power status | grep 'Power is on')" != "" ]; then - ${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 & - echo -e "${idsCL[Green]}Commands sent${idsCL[Default]}" - else - echo -e "${idsCL[Yellow]}Host Offline${idsCL[Default]}" - fi - else - echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" - fi - done + MSG="Shutting down 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[White]}${MSG//${PW_ESXI_HOST_NAMES[${ESXIHOST}]}/${idsCL[LightCyan]}${PW_ESXI_HOST_NAMES[${ESXIHOST}]}}${idsCL[White]}${MSG_SPC}: " + if [ "${TEST}" != "true" ]; then + for ESXIHOST in "${ESXI_HOSTS[@]}"; do + var="${ESXIHOST},${var}" + done + echo "HERE: ${var::-1}" + ${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${var::-1} #>/dev/null 2>&1 & + echo -e "${idsCL[Green]}Commands sent${idsCL[Default]}" + + else + echo -e "${idsCL[Yellow]}(TEST MODE)${idsCL[Default]}" + fi echo if [ ${MM} -eq 0 ]; then