ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° VMWare ESXi ΠΏΡ€ΠΈ критичСском ΡƒΡ€ΠΎΠ²Π½Π΅ заряда Π±Π°Ρ‚Π°Ρ€Π΅ΠΉ Π˜Π‘ΠŸ APC

На просторах Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ статСй ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ PowerChute Business Edition, ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ VMWare ΠΈΠ· PowerShell, Π½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π½Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΠ»ΠΎΡΡŒ всС это Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, с описаниСм Ρ‚ΠΎΠ½ΠΊΠΈΡ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ². А ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ.

1. ВступлСниС

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ энСргСтикС, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с элСктричСством ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚. Π’ΡƒΡ‚ Π² Π΄Π΅Π»ΠΎ вступаСт Π˜Π‘ΠŸ, Π½ΠΎ ΠΈ Π΅Π³ΠΎ Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ, ΡƒΠ²Ρ‹, Π½Π΅ Π΄ΠΎΠ»Π³ΠΎΠ²Π΅Ρ‡Π½Ρ‹. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ? Π’Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ!

Пока всС сСрвСры Π±Ρ‹Π»ΠΈ физичСскими, Π΄Π΅Π»Π° шли Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ, нас Π²Ρ‹Ρ€ΡƒΡ‡Π°Π»Π° PowerChute Business Edition. БСсплатная, Π½Π° 5 сСрвСров, Ρ‡Π΅Π³ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ. На ΠΎΠ΄Π½ΠΎΠΉ машинС Π±Ρ‹Π» установлСн Π°Π³Π΅Π½Ρ‚, сСрвСр ΠΈ консоль. ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ†Π° Π°Π³Π΅Π½Ρ‚ просто выполнял ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π° сосСдниС сСрвСры ΠΏΠΎΡΡ‹Π»Π°Π»ΠΎΡΡŒ shutdown.exe /s /m, Π° ΠΏΠΎΡ‚ΠΎΠΌ гасил свою ОБ. ВсС ΠΆΠΈΠ²Ρ‹.
ΠŸΠΎΡ‚ΠΎΠΌ настало врСмя Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин.

2. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ? ВсСго Π½ΠΈΡ‡Π΅Π³ΠΎ – ΠΎΠ΄ΠΈΠ½ физичСский сСрвСр с Windows Server 2008 R2 ΠΈ ΠΎΠ΄ΠΈΠ½ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ с нСсколькими Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами, срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ ΠΈ Windows Server 2019, ΠΈ Windows Server 2003, ΠΈ CentOS. И Π΅Ρ‰Π΅ Π˜Π‘ΠŸ – APC Smart-UPS.

ΠŸΡ€ΠΎ NUT ΠΌΡ‹ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ, Π½ΠΎ Ρ€ΡƒΠΊΠΈ ΠΏΠΎΠΊΠ° Π΄ΠΎ Π΅Π³ΠΎ изучСния Π½Π΅ дошли, использовали Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ PowerChute Business Edition.

Π“ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ ΡƒΠΌΠ΅Π΅Ρ‚ сам Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ своих Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅ΠΌΡƒ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€Π°. Π•ΡΡ‚ΡŒ такая полСзная ΡˆΡ‚ΡƒΠΊΠ° VMWare.PowerCLI, это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для Windows Powershell, ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Ρƒ ΠΈ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Π΅ΠΌΡƒ всС Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ. ΠŸΡ€ΠΎ настройки PowerCLI Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ статСй Π½Π° просторах.

3. ΠŸΡ€ΠΎΡ†Π΅ΡΡ

Π˜Π‘ΠŸ физичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΊ com-ΠΏΠΎΡ€Ρ‚Ρƒ сСрвСра 2008, Π±Π»Π°Π³ΠΎ ΠΎΠ½ Π±Ρ‹Π». Π₯отя это Π½Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ – ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ интСрфСйсов (MOXA) ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Windows сСрвСру. Π”Π°Π»Π΅Π΅ всС дСйствия производятся Π½Π° машинС, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π˜Π‘ΠŸ – Windows Server 2008, Ссли явно Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅. На Π½Π΅ΠΉ установили Π°Π³Π΅Π½Ρ‚Π° PowerChute Business Edition. Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ находится ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ‚ΠΎΠ½ΠΊΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: слуТбу Π°Π³Π΅Π½Ρ‚Π° Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π΅ ΠΎΡ‚ систСмы, Π° ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈΠ½Π°Ρ‡Π΅ Π°Π³Π΅Π½Ρ‚ Π½Π΅ смоТСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ cmd-Ρ„Π°ΠΉΠ».

Π”Π°Π»Π΅Π΅ установили .Net Framework 4.7. Π’ΡƒΡ‚ трСбуСтся ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, Π΄Π°ΠΆΠ΅ Ссли Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π΅Π΅ явно Π½Π΅ просит послС установки, ΠΈΠ½Π°Ρ‡Π΅ дальшС Π½Π΅ ΠΏΠΎΠΉΠ΄Π΅Ρ‚. ПослС Π΅Ρ‰Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ обновлСния, Ρ‚ΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

Π”Π°Π»Π΅Π΅ установили PowerShell 5.1. Π’ΠΎΠΆΠ΅ трСбуСтся ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, Π΄Π°ΠΆΠ΅ Ссли Π½Π΅ просит.
Π”Π°Π»Π΅Π΅ установка PowerCLI 11.5. Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ свСТая вСрсия, ΠΎΡ‚ этого ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ трСбования. МоТно Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, ΠΎΠ± этом Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ статСй, Π½ΠΎ Ρƒ нас ΠΎΠ½ΠΎ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ скачано, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ просто скопировали всС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠ°ΠΏΠΊΡƒ Modules.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ:

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 address.

Π‘Π°ΠΌ скрипт, Π½Ρƒ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ, погасили, Π½Π° всякий случай ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:


    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Β» -File Β«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. Happy end!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com