From 345fdbcc63eb024df66d42627a4669e4d86932fb Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Mon, 5 Feb 2024 23:01:31 -0600 Subject: [PATCH] update --- defaults.inc | 2 +- esxi-scripts/host-vm-shutdown-verify.ps1 | 27 +++++++++++++++++++ ...e-vm-shutdown.ps1 => host-vm-shutdown.ps1} | 3 +-- inc/power.inc.sh | 8 +----- 4 files changed, 30 insertions(+), 10 deletions(-) create mode 100755 esxi-scripts/host-vm-shutdown-verify.ps1 rename esxi-scripts/{offsite-vm-shutdown.ps1 => host-vm-shutdown.ps1} (88%) diff --git a/defaults.inc b/defaults.inc index 9fd06576..1117e5c1 100755 --- a/defaults.inc +++ b/defaults.inc @@ -1,6 +1,6 @@ #!/usr/bin/env bash -VERS='2.5.251-02052024' +VERS='2.5.255-02052024' noheader=' update service dailytemp confsync -r -report ' diff --git a/esxi-scripts/host-vm-shutdown-verify.ps1 b/esxi-scripts/host-vm-shutdown-verify.ps1 new file mode 100755 index 00000000..c6d1f7aa --- /dev/null +++ b/esxi-scripts/host-vm-shutdown-verify.ps1 @@ -0,0 +1,27 @@ +#!/usr/bin/env pwsh +. /opt/idssys/powerwall/settings.ps1 + +Connect-VIServer -Force -Server $args[0] -Protocol https -User $ESXiUsername -Password $ESXiPassword | Out-Null + +Do { + $VMLIST = Get-VM | Where {$_.PowerState -like '*On*' -and $_.Name -notlike '*CLS*' -and $_.Name -notlike '*iSCSI*'} + if ($VMLIST -ne $null) { + $poff = 'no' + Foreach ($VM in $VMLIST) { + $VMI = Get-VM $VM + if ($VMI -eq $null -Or $VMI.PowerState -match 'PoweredOn') { + $poff = 'no' + break + } else { + $poff = 'yes' + } + } + Start-Sleep -s 1 + } else { + $poff = 'yes' + } +} Until ($poff -match 'yes') + + +Disconnect-VIServer -Server $args[0] -Force –Confirm:$false + diff --git a/esxi-scripts/offsite-vm-shutdown.ps1 b/esxi-scripts/host-vm-shutdown.ps1 similarity index 88% rename from esxi-scripts/offsite-vm-shutdown.ps1 rename to esxi-scripts/host-vm-shutdown.ps1 index ceb87015..78594c7e 100755 --- a/esxi-scripts/offsite-vm-shutdown.ps1 +++ b/esxi-scripts/host-vm-shutdown.ps1 @@ -8,8 +8,7 @@ Foreach ($vm in $vms) { $migrating=Get-Task | ?{$_.ObjectId -match 'VirtualMachine'} | Select @{N='VM';E={(Get-View -Id $_.ObjectId).Name }},State,Description | where {$_.VM -eq $vm -and $_.Description -like '*Relocate*' -and $_.State -eq 'Running'} if ([string]::IsNullOrEmpty($migrating)) { - # Get-VM $vm | Shutdown-VMGuest -Confirm:$false - write-host "Shutting down: "$_.Name + Get-VM $vm | Shutdown-VMGuest -Confirm:$false } } diff --git a/inc/power.inc.sh b/inc/power.inc.sh index e981fee6..ad835d91 100644 --- a/inc/power.inc.sh +++ b/inc/power.inc.sh @@ -622,9 +622,6 @@ OFFSITE_CHECKPOWER_SERVICE(){ for host in ${PW_OFFSITEHOSTS_IDRAC}; do if [ "${TEST}" == "" ] || [ "${TEST}" == "full" ]; then ipmitool -I lanplus -H ${host} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" chassis power on & - # run=$(ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${PW_VCENTERHOST} "sed -i '//{n;s/.*<\/enabled>/True<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1) - # run=$(ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) - # run=$(ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) else echo "TESTMODE: Powering up '${host}'" fi @@ -652,10 +649,7 @@ OFFSITE_CHECKPOWER_SERVICE(){ touch ${PW_TMPFOLDER}/shutdown.OFFSITE for host in ${PW_OFFSITEHOSTS}; do if [ "${TEST}" = "" ] || [ "${TEST}" = "full" ]; then - # run=$(ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${PW_VCENTERHOST} "sed -i '//{n;s/.*<\/enabled>/False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1) - # run=$(ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) - # run=$(ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1) - ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${host} sh < ${PW_FOLDER}/esxi-scripts/esxi-shutdown2.sh & + ${PW_FOLDER}/esxi-scripts/host-vm-shutdown.ps1 ${host} >/dev/null 2>&1 & fi done fi