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 -ListAvailableOkej, vi ser att vi har installerat:
Import-Module VMWare.PowerCLIJa, 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-VICredentialStoreItemDu 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
