Korrekt avslutning av hypervisor VMWare ESXi vid kritisk nivÄ av APC UPS-batteriladdning

Det finns mÄnga artiklar dÀr ute om hur man konfigurerar PowerChute Business Edition och hur man ansluter till VMWare frÄn PowerShell, men jag har Ànnu inte sett allt detta samlat pÄ ett stÀlle med beskrivningar av viktiga detaljer. Och de finns.

1. Introduktion

Trots att vi har viss koppling till energi kan elproblem ibland uppstÄ. HÀr kommer UPS in i bilden, men tyvÀrr Àr Àven dess batterier inte lÄnglivade. Vad gör man? StÀnger av!

NÀr alla servrar var fysiska gick det rÀtt bra, vi rÀddades av PowerChute Business Edition. Gratis, för 5 servrar, vilket var mer Àn tillrÀckligt. PÄ en maskin var agenten installerad, servern och konsolen. NÀr slutet nÀrmade sig utförde agenten helt enkelt ett skript som skickade shutdown.exe /s /m till de nÀrliggande servrarna, och stÀngde sedan ner sitt eget operativsystem. Alla Àr vid liv.
Sedan kom tiden virtuella maskiner.

2. FörutsÀttningar och reflektioner

SĂ„ vad har vi? Inte mycket – en fysisk server med Windows Server 2008 R2 och en hypervisor med flera virtuella maskiner, bland vilka finns bĂ„de Windows Server 2019 och Windows Server 2003, samt CentOS. Och en UPS – APC Smart-UPS.

Vi har hört talas om NUT, men har Ànnu inte fÄtt tid att lÀsa in oss, utan har anvÀnt det som fanns tillgÀngligt, nÀmligen PowerChute Business Edition.

Hypervisorn kan stÀnga av sina virtuella maskiner, det som kvarstÄr Àr att meddela den att det Àr dags. Det finns en anvÀndbar sak som heter VMWare.PowerCLI, ett tillÀgg för Windows Powershell som gör det möjligt att ansluta till hypervisorn och ge den all nödvÀndig information. Det finns ocksÄ mÄnga artiklar om PowerCLI-instÀllningar pÄ nÀtet.

3. Process

UPS:en anslöts fysiskt till COM-porten pĂ„ servern 2008, lycka att den fanns. Fast det Ă€r inte avgörande – man kunde Ă€ven ansluta via en grĂ€nssnittsomvandlare (MOXA) till vilken virtuell Windows-server som helst. Alla Ă„tgĂ€rder utförs pĂ„ maskinen som UPS:en Ă€r ansluten till – Windows Server 2008, om inget annat anges. DĂ€r installerades agenten för PowerChute Business Edition. HĂ€r ligger den första delikata punkten: agenttjĂ€nsten mĂ„ste köras som anvĂ€ndare och inte som system, annars kan inte agenten köra cmd-filen.

DÀrefter installerade vi .Net Framework 4.7. HÀr krÀvs en omstart, Àven om ramverket inte tydligt ber om det efter installationen, annars gÄr det inte vidare. EfterÄt kan det Àven komma uppdateringar som ocksÄ mÄste installeras.

DÀrefter installerade vi PowerShell 5.1. Det krÀvs ocksÄ en omstart, Àven om det inte begÀrs.
Vidare installation av PowerCLI 11.5. En ganska ny version, dÀrav de tidigare kraven. Det gÄr att göra via internet, det finns mÄnga artiklar om detta, men vi hade redan laddat ner det, sÄ vi kopierade bara alla filer till mappen Modules.

Vi kontrollerade:

Get-Module -ListAvailable

Okej, vi ser att vi har installerat:

Import-Module VMWare.PowerCLI

Ja, PowerShell-konsolen körs förstÄs som administratör.

InstÀllningar för PowerShell.

  • TillĂ„t körning av alla skript:

Set-ExecutionPolicy Unrestricted

  • Eller tillĂ„t endast att ignorera skriptcertifikat:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 

  • TillĂ„t PowerCLI att ansluta till servrar med ogiltiga (utgĂ„ngna) certifikat:

Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false

  • Tysta meddelandet frĂ„n PowerCLI om att delta i anvĂ€ndargrupp, annars kommer det att bli mycket onödig information i loggen:

Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false

  • Spara anvĂ€ndarens inloggningsuppgifter för att logga in pĂ„ VMWare-vĂ€rden, sĂ„ att de inte syns i skriptet:

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

Kontrollen visar vilka vi har sparat:

Get-VICredentialStoreItem

Du kan Àven kontrollera anslutningen: Connect-VIServer address.

SjÀlva skriptet, till exempel: ansluten, stÀngde av, kopplade frÄn, det finns olika alternativ:


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

4. Default.cmd

Den dĂ€r kommandofilen som startas av APC-agenten. Den ligger i “C:Program Files[(x86)]APCPowerChute Business Editionagentcmdfiles”, och inuti:

«C:Windowssystem32WindowsPowerShellv1.0powershell.exe» -File «C:
shutdown_hosts.ps1»
Det verkar som vi har konfigurerat och kontrollerat allt, till och med kört cmd – det fungerar korrekt, stĂ€nger av.

Vi kör en test av kommandofilen frĂ„n APC-konsolen (det finns en knapp Test) – det fungerar inte.

HÀr Àr den pinsamma situationen, nÀr allt arbete inte har lett till nÄgot.

5. Katarsis

Vi tittar pĂ„ aktivitetshanteraren, ser att – cmd flöt förbi, powershell flöt förbi. Vi ser noggrant – cmd *32 och dĂ€rmed powershell *32. Vi förstĂ„r att APC-agentens tjĂ€nst Ă€r 32-bitars, vilket innebĂ€r att den startar motsvarande konsol.

Vi startar powershell x86 som administratör, gÄr igenom installationen och konfigurationen av PowerCLI igen enligt punkt 3.

Och vi Àndrar raden som anropar powershell:

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

6. Lyckligt slut!

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster