APC UPS батарейканын зарядынын деңгээли критикалык болгондо VMWare ESXi гипервизорунун туура өчүрүлүшү

Ал жерде PowerChute Business Edition кантип конфигурациялоо жана VMWareге PowerShellден кантип туташуу керектиги жөнүндө көптөгөн макалалар бар, бирок мен мунун баарын бир жерден таба алган жокмун, бул майда-чүйдөсүнө чейин сүрөттөлгөн. Бирок алар бар.

1. Кириш сөз

Энергетика менен кандайдыр бир байланышыбыз болгонуна карабастан, кээде электр энергиясы боюнча көйгөйлөр жаралат. Бул жерде UPS ишке кирет, бирок анын батареялары, тилекке каршы, көпкө чыдабайт. Эмне кылуу керек? Өчүрүү!

Бардык серверлер физикалык болгондо да, баары жакшы жүрүп жаткан кезде, PowerChute Business Edition бизге жардам берди. Акысыз, 5 сервер үчүн, бул жетиштүү эле. Агент, сервер жана консол бир машинага орнотулган. Аягына жакындаганда, агент жөн гана shutdown.exe /s /m кошуна серверлерге жөнөткөн буйрук файлын аткарып, андан кийин анын OS'сун өчүрдү. Баары тирүү.
Андан кийин виртуалдык машиналарга убакыт келди.

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-жылдагы сервердин com портуна туташкан, бактыга жараша, ал ошол жерде болгон. Бул маанилүү эмес болсо да - интерфейс конвертер (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

Сиз ошондой эле байланышты текшере аласыз: Connect-VIServer дареги.

Скрипттин өзү, мисалы: туташтырылган, өчүрүлгөн, ажыратылган учурда, төмөнкү опциялар мүмкүн:


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

4. Default.cmd

APC агенти ишке киргизген ошол эле пакеттик файл. Ал "C:Program Files[(x86)]APCPowerChute Business Editionagentcmdfiles" ичинде жайгашкан жана ичинде:

"C:Windowssystem32WindowsPowerShellv1.0powershell.exe" -Файл "C:...shutdown_hosts.ps1"
Баары конфигурацияланган жана текшерилген окшойт, биз cmd-ды ишке киргиздик - ал туура иштейт, аны өчүрөт.

Биз APC консолунан командалык файл сынагын аткарабыз (ал жерде Test баскычы бар) - ал иштебейт.

Мына, ошол ыңгайсыз учур, бардык жасалган иштер эч нерсеге алып келбей калды.

5. Катарсис

Биз тапшырма менеджерин карайбыз, биз cmd жаркыраган, powershell жаркылдап көрөбүз. Келгиле, кененирээк карап көрөлү - cmd *32 жана, демек, powershell *32. Биз муну түшүнөбүз APC агент кызматы 32-бит, демек, ал тиешелүү консолду иштетет.

Биз powershell x86ны администратор катары ишке киргизип, PowerCLIди 3-кадамдан кайра орнотуп, конфигурациялайбыз.

Келгиле, powershell чалуу линиясын өзгөртөлү:

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

6. Бактылуу аягы!

Source: www.habr.com

Комментарий кошуу