Правилно исклучување на хипервизорот VMWare ESXi кога нивото на полнење на батеријата на APC UPS е критично

Има многу написи таму за тоа како да го конфигурирате PowerChute Business Edition и како да се поврзете со VMWare од PowerShell, но некако не можев да го најдам сето ова на едно место, со опис на суптилните точки. Но, тие постојат.

1. Вовед

И покрај тоа што имаме некаква поврзаност со енергијата, понекогаш се јавуваат проблеми со електричната енергија. Ова е местото каде што UPS-от влегува во игра, но неговите батерии, за жал, не траат долго. Што да се прави? Исклучи!

Додека сите сервери беа физички, работите одеа добро, PowerChute Business Edition ни помогна. Бесплатно, за 5 сервери, што беше сосема доволно. На една машина беа инсталирани агент, сервер и конзола. Како што се приближуваше крајот, агентот едноставно изврши командна датотека која испрати shutdown.exe /s /m до соседните сервери, а потоа го исклучи својот ОС. Сите се живи.
Тогаш дојде време за виртуелни машини.

2. Позадина и рефлексии

Па што имаме? Воопшто ништо - еден физички сервер со Windows Server 2008 R2 и еден хипервизор со неколку виртуелни машини, вклучувајќи ги Windows Server 2019, Windows Server 2003 и CentOS. И уште еден UPS – APC Smart-UPS.

Слушнавме за NUT, но сè уште не сме го проучувале; го користевме само она што беше при рака, имено PowerChute Business Edition.

Хипервизорот може самиот да ги исклучи своите виртуелни машини; останува само да му каже дека е време. Има толку корисна работа VMWare.PowerCLI, ова е екстензија за Windows Powershell што ви овозможува да се поврзете со хипервизорот и да му кажете сè што ви треба. Исто така, постојат многу статии за поставките за PowerCLI.

3. Процес

UPS-от беше физички поврзан со приклучокот на серверот од 2008 година, за среќа беше таму. Иако ова не е важно - беше можно да се поврзете преку конвертор на интерфејс (MOXA) на кој било виртуелен сервер на Windows. Понатаму, сите дејства се извршуваат на машината на која е поврзан UPS-от - Windows Server 2008, освен ако не е изрично наведено поинаку. На него беше инсталиран агентот PowerChute Business Edition. Еве ја првата суптилна точка: услугата за агент мора да се стартува не од системот, туку од корисникот, инаку агентот нема да може да ја изврши cmd-датотеката.

Следно, инсталиравме .Net Framework 4.7. Тука е потребно рестартирање, дури и ако рамката не го бара тоа експлицитно по инсталацијата, во спротивно нема да оди понатаму. После тоа, може сè уште да доаѓаат ажурирања, кои исто така треба да се инсталираат.

Следно, инсталиравме PowerShell 5.1. Исто така, бара рестартирање, дури и ако не праша.
Следно, инсталирајте PowerCLI 11.5. Сосема понова верзија, па оттука и претходните барања. Можете да го направите тоа преку Интернет, има многу написи за ова, но ние веќе го преземавме, па само ги копиравме сите датотеки во папката Модули.

Проверено:

Get-Module -ListAvailable

Добро, гледаме дека сме инсталирале:

Import-Module VMWare.PowerCLI

Да, конзолата Powershell е се разбира лансирана како Администратор.

Поставки за Powershell.

  • Дозволете извршување на какви било скрипти:

Set-ExecutionPolicy Unrestricted

  • Или можете да дозволите само да се игнорираат сертификатите за скрипта:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 

  • Дозволете PowerCLI да се поврзе со сервери со неважечки (истечени) сертификати:

Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false

  • Потиснете го излезот од пораката PowerCLI за приклучување кон програмата за размена на искуства, во спротивно ќе има многу непотребни информации во дневникот:

Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false

  • Зачувајте ги корисничките акредитиви за најавување во домаќинот VMWare за да не ги прикажувате експлицитно во скриптата:

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

Проверката ќе покаже кого сме зачувале:

Get-VICredentialStoreItem

Можете исто така да ја проверите врската: Поврзете-VIS-адреса на серверот.

Самата скрипта, на пример: поврзан, исклучен, исклучен за секој случај, можни се следниве опции:


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

4. Стандардно.cmd

Истата серија датотека што ја лансира агентот APC. Се наоѓа во „C:Program Files[ (x86)]APCPowerChute Business Editionagentcmdfiles“, и внатре:

„C:Windowssystem32WindowsPowerShellv1.0powershell.exe“ -Датотека „C:...shutdown_hosts.ps1“
Се чини дека сè беше конфигурирано и проверено, дури и го лансиравме cmd - работи правилно, го исклучува.

Ние извршуваме тест за командна датотека од конзолата APC (таму има копче Тест) - тоа не функционира.

Еве го тој непријатен момент кога целата завршена работа не доведе до ништо.

5. Катарза

Гледаме во менаџерот на задачи, гледаме cmd трепка, powershell трепка. Ајде да погледнеме подетално - cmd *32 и, соодветно, powershell *32. Ние го разбираме тоа Услугата за агент APC е 32-битна, што значи дека ја работи соодветната конзола.

Го стартуваме powershell x86 како администратор и повторно го инсталираме и конфигурираме PowerCLI од чекор 3.

Па, ајде да ја смениме линијата за повикување на powershell:

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

6. Среќен крај!

Извор: www.habr.com

Додадете коментар