Teisingas VMWare ESXi hipervizoriaus išjungimas, kai APC UPS akumuliatoriaus įkrovos lygis yra kritinis

Yra daug straipsnių apie tai, kaip sukonfigūruoti PowerChute Business Edition ir kaip prisijungti prie VMWare iš PowerShell, bet kažkodėl neradau viso to vienoje vietoje su subtilių dalykų aprašymu. Bet jie egzistuoja.

1. Įvadas

Nepaisant to, kad turime tam tikrą ryšį su energija, kartais iškyla problemų su elektra. Čia pradeda veikti UPS, bet jo baterijos, deja, tarnauja neilgai. Ką daryti? Išjunk!

Nors visi serveriai buvo fiziniai, viskas klostėsi gerai, PowerChute Business Edition mums padėjo. Nemokamai, 5 serveriams, to visiškai pakako. Viename kompiuteryje buvo įdiegtas agentas, serveris ir konsolė. Artėjant pabaigai agentas tiesiog įvykdė komandų failą, kuris išsiuntė shutdown.exe /s /m į gretimus serverius, o tada išjungė savo OS. Visi gyvi.
Tada atėjo laikas virtualioms mašinoms.

2. Fonas ir atspindžiai

Taigi ką mes turime? Visai nieko – vienas fizinis serveris su Windows Server 2008 R2 ir vienas hipervizorius su keliomis virtualiomis mašinomis, įskaitant Windows Server 2019, Windows Server 2003 ir CentOS. Ir dar vienas UPS – APC Smart-UPS.

Girdėjome apie NUT, bet dar nespėjome jo studijuoti; naudojome tik tai, kas buvo po ranka, būtent PowerChute Business Edition.

Hipervizorius gali pats išjungti savo virtualias mašinas; belieka pasakyti, kad atėjo laikas. Yra toks naudingas dalykas VMWare.PowerCLI, tai yra „Windows Powershell“ plėtinys, leidžiantis prisijungti prie hipervizoriaus ir pasakyti jam viską, ko reikia. Taip pat yra daug straipsnių apie „PowerCLI“ nustatymus.

3. Procesas

UPS buvo fiziškai prijungtas prie 2008 m. serverio com prievado, laimei, jis ten buvo. Nors tai nėra svarbu – per sąsajos keitiklį (MOXA) buvo galima prisijungti prie bet kurio virtualaus Windows serverio. Be to, visi veiksmai atliekami mašinoje, prie kurios prijungtas UPS – Windows Server 2008, nebent būtų aiškiai nurodyta kitaip. Jame buvo įdiegtas „PowerChute Business Edition“ agentas. Štai pirmas subtilus momentas: agento paslauga turi būti paleista ne iš sistemos, o iš vartotojo, kitaip agentas negalės vykdyti cmd failo.

Toliau įdiegėme .Net Framework 4.7. Čia reikia iš naujo paleisti, net jei sistema to aiškiai neprašo po įdiegimo, kitu atveju jis nebus tęsiamas. Vėliau vis tiek gali būti naujinimų, kuriuos taip pat reikia įdiegti.

Tada įdiegėme „PowerShell 5.1“. Taip pat reikalingas perkrovimas, net jei jis neklausia.
Tada įdiekite PowerCLI 11.5. Gana nauja versija, taigi ir ankstesni reikalavimai. Tai galite padaryti per internetą, yra daug straipsnių apie tai, bet mes jį jau atsisiuntėme, todėl tiesiog nukopijavome visus failus į aplanką Moduliai.

Patikrinta:

Get-Module -ListAvailable

Gerai, matome, kad įdiegėme:

Import-Module VMWare.PowerCLI

Taip, „Powershell“ konsolė, žinoma, paleista kaip administratorius.

Powershell nustatymai.

  • Leisti vykdyti bet kokius scenarijus:

Set-ExecutionPolicy Unrestricted

  • Arba galite tik leisti nepaisyti scenarijaus sertifikatų:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 

  • Leisti PowerCLI prisijungti prie serverių su negaliojančiais (negaliojančiais) sertifikatais:

Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false

  • Sustabdykite PowerCLI pranešimo apie prisijungimą prie patirties mainų programos išvestį, kitaip žurnale bus daug nereikalingos informacijos:

Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false

  • Išsaugokite vartotojo kredencialus, kad galėtumėte prisijungti prie „VMWare“ pagrindinio kompiuterio, kad jie nebūtų aiškiai rodomi scenarijuje:

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

Patikrinus bus parodyta, ką išsaugojome:

Get-VICredentialStoreItem

Taip pat galite patikrinti ryšį: Connect-VIServer adresas.

Pats scenarijus, pavyzdžiui: prijungtas, išjungtas, atjungtas tik tuo atveju, galimos šios parinktys:


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

4. Default.cmd

Tas pats paketinis failas, kurį paleido APC agentas. Jis yra „C:Program Files[ (x86)]APCPowerChute Business Editionagentcmdfiles“ ir viduje:

"C:Windowssystem32WindowsPowerShellv1.0powershell.exe" -Failas "C:...shutdown_hosts.ps1"
Atrodo, viskas buvo sukonfigūruota ir patikrinta, net paleidome cmd - veikia teisingai, išjungia.

Vykdome komandų failo testą iš APC konsolės (ten yra mygtukas Testas) - jis neveikia.

Štai ta nepatogi akimirka, kai visas atliktas darbas nieko nenuvedė.

5. Katarsis

Mes žiūrime į užduočių tvarkyklę, matome cmd blyksnius, powershell blyksnius. Pažvelkime atidžiau - cmd *32 ir atitinkamai powershell *32. Mes tai suprantame APC agento paslauga yra 32 bitų, o tai reiškia, kad ji veikia atitinkamoje konsolėje.

Paleidžiame powershell x86 kaip administratorius ir vėl įdiegiame bei konfigūruojame PowerCLI nuo 3 veiksmo.

Na, pakeiskime „Powershell“ skambučio liniją:

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

6. Laiminga pabaiga!

Šaltinis: www.habr.com

Добавить комментарий