Tamang pagsara ng VMWare ESXi hypervisor kapag ang antas ng singil ng baterya ng APC UPS ay kritikal

Mayroong maraming mga artikulo doon tungkol sa kung paano i-configure ang PowerChute Business Edition at kung paano kumonekta sa VMWare mula sa PowerShell, ngunit kahit papaano ay hindi ko mahanap ang lahat ng ito sa isang lugar, na may paglalarawan ng mga banayad na punto. Ngunit mayroon sila.

1. Entry

Sa kabila ng katotohanan na mayroon tayong ilang koneksyon sa enerhiya, kung minsan ay lumitaw ang mga problema sa kuryente. Dito pumapasok ang UPS, ngunit ang mga baterya nito, sayang, hindi nagtatagal. Anong gagawin? Patayin!

Habang ang lahat ng mga server ay pisikal, ang mga bagay ay maayos, ang PowerChute Business Edition ay tumulong sa amin. Libre, para sa 5 server, na sapat na. Isang ahente, server at console ang na-install sa isang makina. Habang papalapit ang pagtatapos, nagsagawa lang ang ahente ng command file na nagpadala ng shutdown.exe /s /m sa mga kalapit na server, at pagkatapos ay isinara ang OS nito. Buhay ang lahat.
Pagkatapos ay oras na para sa mga virtual machine.

2. Background at repleksyon

Kaya ano ang mayroon tayo? Wala talaga - isang pisikal na server na may Windows Server 2008 R2 at isang hypervisor na may ilang virtual machine, kabilang ang Windows Server 2019, Windows Server 2003, at CentOS. At isa pang UPS - APC Smart-UPS.

Narinig namin ang tungkol sa NUT, ngunit hindi pa nakakapag-aral nito; ginamit lang namin ang nasa kamay, katulad ng PowerChute Business Edition.

Maaaring isara mismo ng hypervisor ang mga virtual machine nito; ang natitira na lang ay sabihin dito na oras na. Mayroong isang kapaki-pakinabang na bagay na VMWare.PowerCLI, ito ay isang extension para sa Windows Powershell na nagbibigay-daan sa iyong kumonekta sa hypervisor at sabihin dito ang lahat ng kailangan mo. Mayroon ding maraming mga artikulo doon tungkol sa mga setting ng PowerCLI.

3. Proseso

Ang UPS ay pisikal na konektado sa com port ng 2008 server, sa kabutihang palad ay naroon ito. Kahit na ito ay hindi mahalaga - ito ay posible upang kumonekta sa pamamagitan ng isang interface converter (MOXA) sa anumang virtual Windows server. Dagdag pa, ang lahat ng mga aksyon ay isinasagawa sa makina kung saan nakakonekta ang UPS - Windows Server 2008, maliban kung tahasang nakasaad kung hindi man. Ang ahente ng PowerChute Business Edition ay na-install dito. Narito ang unang banayad na punto: ang serbisyo ng ahente ay dapat na ilunsad hindi mula sa system, ngunit mula sa gumagamit, kung hindi, ang ahente ay hindi magagawang isagawa ang cmd file.

Susunod na na-install namin ang .Net Framework 4.7. Kailangan ng reboot dito, kahit na hindi tahasang hinihiling ito ng framework pagkatapos ng pag-install, kung hindi, hindi na ito magpapatuloy. Pagkatapos, maaari pa ring dumating ang mga update, na kailangan ding i-install.

Susunod na na-install namin ang PowerShell 5.1. Nangangailangan din ng reboot, kahit hindi siya magtanong.
Susunod, i-install ang PowerCLI 11.5. Medyo kamakailang bersyon, kaya ang mga naunang kinakailangan. Magagawa mo ito sa pamamagitan ng Internet, maraming mga artikulo tungkol dito, ngunit na-download na namin ito, kaya kinopya na lang namin ang lahat ng mga file sa folder ng Modules.

Sinuri:

Get-Module -ListAvailable

Ok, nakita namin na na-install namin:

Import-Module VMWare.PowerCLI

Oo, ang Powershell console ay siyempre inilunsad bilang Administrator.

Mga setting ng Powershell.

  • Payagan ang pagpapatupad ng anumang mga script:

Set-ExecutionPolicy Unrestricted

  • O maaari mo lamang payagan ang mga script certificate na balewalain:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 

  • Payagan ang PowerCLI na kumonekta sa mga server na may mga di-wastong (nag-expire) na certificate:

Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false

  • Pigilan ang output ng mensahe ng PowerCLI tungkol sa pagsali sa programa ng palitan ng karanasan, kung hindi, magkakaroon ng maraming hindi kinakailangang impormasyon sa log:

Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false

  • I-save ang mga kredensyal ng user para sa pag-log in sa VMWare host upang hindi tahasang ipakita ang mga ito sa script:

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

Ipapakita ng pagsuri kung sino ang na-save namin:

Get-VICredentialStoreItem

Maaari mo ring suriin ang koneksyon: Connect-VIServer address.

Ang script mismo, halimbawa: nakakonekta, naka-off, nadiskonekta kung sakali, posible ang mga sumusunod na opsyon:


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

4. Default.cmd

Ang parehong batch file na inilunsad ng ahente ng APC. Ito ay matatagpuan sa "C:Program Files[ (x86)]APCPowerChute Business Editionagentcmdfiles", at sa loob:

"C:Windowssystem32WindowsPowerShellv1.0powershell.exe" -File "C:...shutdown_hosts.ps1"
Tila ang lahat ay na-configure at nasuri, inilunsad pa namin ang cmd - gumagana ito nang tama, pinapatay ito.

Nagpapatakbo kami ng command file test mula sa APC console (mayroong Test button doon) - hindi ito gumagana.

Eto na, yung awkward moment na lahat ng gawaing ginawa ay nauwi sa wala.

5. Catharsis

Tumingin kami sa task manager, nakikita namin ang mga cmd flashes, powershell flashes. Tingnan natin nang maigi - cmd *32 at, nang naaayon, powershell *32. Naiintindihan namin iyon Ang serbisyo ng ahente ng APC ay 32-bit, na nangangahulugang pinapatakbo nito ang kaukulang console.

Inilunsad namin ang powershell x86 bilang isang administrator, at muling i-install at i-configure ang PowerCLI mula sa hakbang 3.

Well, palitan natin ang linya ng tawag sa powershell:

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

6. Maligayang pagtatapos!

Pinagmulan: www.habr.com

Magdagdag ng komento