Pravilna zaustavitev hipervizorja VMWare ESXi, ko je raven napolnjenosti baterije APC UPS kritična

Obstaja veliko člankov o tem, kako konfigurirati PowerChute Business Edition in kako se povezati z VMWare iz PowerShell, vendar nekako nisem mogel najti vsega tega na enem mestu, z opisom subtilnih točk. Vendar obstajajo.

1. Vnos

Kljub temu, da imamo neko povezavo z energijo, se včasih pojavijo težave z elektriko. Tu pride v poštev UPS, a njegove baterije, žal, ne zdržijo dolgo. Kaj storiti? Ugasni!

Čeprav so bili vsi strežniki fizični, je šlo dobro, PowerChute Business Edition nam je pomagal. Brezplačno, za 5 strežnikov, kar je bilo čisto dovolj. Agent, strežnik in konzola so bili nameščeni na enem računalniku. Ko se je bližal konec, je agent preprosto izvedel ukazno datoteko, ki je poslala shutdown.exe /s /m sosednjim strežnikom, in nato zaustavil svoj OS. Vsi so živi.
Potem je bil čas za virtualne stroje.

2. Ozadje in odsevi

Torej, kaj imamo? Prav nič – en fizični strežnik z Windows Server 2008 R2 in en hipervizor z več virtualnimi stroji, vključno z Windows Server 2019, Windows Server 2003 in CentOS. In še en UPS – APC Smart-UPS.

Slišali smo za NUT, vendar se ga še nismo lotili preučevanja, uporabili smo samo tisto, kar je bilo pri roki, in sicer PowerChute Business Edition.

Hipervizor lahko sam izklopi svoje virtualne stroje; vse, kar ostane, je, da mu povemo, da je čas. Obstaja tako uporabna stvar VMWare.PowerCLI, to je razširitev za Windows Powershell, ki vam omogoča, da se povežete s hipervizorjem in mu poveste vse, kar potrebujete. Obstaja tudi veliko člankov o nastavitvah PowerCLI.

3. Postopek

UPS je bil fizično povezan s com portom strežnika 2008, na srečo je bil tam. Čeprav to ni pomembno – možno se je bilo prek pretvornika vmesnikov (MOXA) povezati s katerim koli virtualnim Windows strežnikom. Nadalje se vsa dejanja izvajajo na stroju, na katerega je priključen UPS - Windows Server 2008, razen če je izrecno navedeno drugače. Na njem je bil nameščen agent PowerChute Business Edition. Tukaj je prva subtilna točka: storitev agenta je treba zagnati ne iz sistema, ampak od uporabnika, sicer agent ne bo mogel izvesti datoteke cmd.

Nato smo namestili .Net Framework 4.7. Tukaj je potreben ponovni zagon, tudi če ogrodje po namestitvi tega izrecno ne zahteva, drugače ne bo šlo naprej. Kasneje lahko še vedno prihajajo posodobitve, ki jih je prav tako treba namestiti.

Nato smo namestili PowerShell 5.1. Potreben je tudi ponovni zagon, tudi če ne vpraša.
Nato namestite PowerCLI 11.5. Precej nova različica, zato prejšnje zahteve. To lahko storite prek interneta, o tem je veliko člankov, vendar smo ga že prenesli, zato smo samo kopirali vse datoteke v mapo Moduli.

Preverjeno:

Get-Module -ListAvailable

V redu, vidimo, da smo namestili:

Import-Module VMWare.PowerCLI

Da, konzola Powershell se seveda zažene kot skrbnik.

Nastavitve Powershell.

  • Dovoli izvajanje vseh skriptov:

Set-ExecutionPolicy Unrestricted

  • Lahko pa dovolite samo prezrtje skriptnih potrdil:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 

  • Dovoli PowerCLI, da se poveže s strežniki z neveljavnimi (potečenimi) potrdili:

Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false

  • Preprečite izpis sporočila PowerCLI o vključitvi v program izmenjave izkušenj, sicer bo v dnevniku veliko nepotrebnih informacij:

Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false

  • Shranite uporabniške poverilnice za prijavo v gostitelja VMWare, da jih ne boste izrecno prikazali v skriptu:

New-VICredentialStoreItem -Host address -User user -Password 'password'

Preverjanje bo pokazalo, koga smo shranili:

Get-VICredentialStoreItem

Preverite lahko tudi povezavo: Connect-VIServer naslov.

Sam skript, na primer: povezan, izklopljen, odklopljen za vsak slučaj, možne so naslednje možnosti:


    Connect-VIserver -Server $vmhost 
    Stop-VMHost $vmhost -force -Confirm:$false 
    Disconnect-VIserver $vmhost -Confirm:$false

4. Default.cmd

Ista paketna datoteka, ki jo zažene agent APC. Nahaja se v »C:Program Files[ (x86)]APCPowerChute Business Editionagentcmdfiles« in znotraj:

"C:Windowssystem32WindowsPowerShellv1.0powershell.exe" -Datoteka "C:...shutdown_hosts.ps1"
Zdi se, da je bilo vse konfigurirano in preverjeno, celo zagnali smo cmd - deluje pravilno, izklopi ga.

Zaženemo test ukazne datoteke s konzole APC (tam je gumb Test) - ne deluje.

Tukaj je tisti neprijeten trenutek, ko vse opravljeno delo ni pripeljalo do nič.

5. Katarza

Pogledamo upravitelja opravil, vidimo, da utripa cmd, utripa powershell. Oglejmo si podrobneje - cmd *32 in s tem powershell *32. To razumemo Agentska storitev APC je 32-bitna, kar pomeni, da poganja ustrezno konzolo.

Powershell x86 zaženemo kot skrbnik ter znova namestimo in konfiguriramo PowerCLI od 3. koraka.

No, spremenimo klicno linijo PowerShell:

"C:Windows<b>SysWOW64</b>WindowsPowerShellv1.0powershell.exe…

6. Srečen konec!

Vir: www.habr.com

Dodaj komentar