Korrekte afskakeling van die VMWare ESXi-hypervisor wanneer die APC UPS-batterylaaivlak krities is

Daar is baie artikels daar buite oor hoe om PowerChute Business Edition op te stel en hoe om aan VMWare vanaf PowerShell te koppel, maar op een of ander manier kon ek dit nie alles op een plek vind nie, met 'n beskrywing van die subtiele punte. Maar hulle bestaan.

1. Inleiding

Ten spyte van die feit dat ons 'n mate van verband met energie het, ontstaan ​​probleme met elektrisiteit soms. Dit is waar die UPS ter sprake kom, maar sy batterye hou helaas nie lank nie. Wat om te doen? Skakel af!

Terwyl al die bedieners fisies was, het dinge goed gegaan, PowerChute Business Edition het ons gehelp. Gratis, vir 5 bedieners, wat genoeg was. 'n Agent, bediener en konsole is op een masjien geïnstalleer. Soos die einde nader gekom het, het die agent eenvoudig 'n opdraglêer uitgevoer wat shutdown.exe /s /m na naburige bedieners gestuur het, en dan sy bedryfstelsel afgeskakel. Almal leef.
Toe was dit tyd vir virtuele masjiene.

2. Agtergrond en refleksies

So wat het ons? Glad niks nie - een fisiese bediener met Windows Server 2008 R2 en een hipervisor met verskeie virtuele masjiene, insluitend Windows Server 2019, Windows Server 2003 en CentOS. En nog 'n UPS - APC Smart-UPS.

Ons het gehoor van NUT, maar het nog nie daaraan gekom om dit te bestudeer nie; ons het net gebruik wat voorhande was, naamlik PowerChute Business Edition.

Die hipervisor kan sy virtuele masjiene self afskakel; al wat oorbly is om dit te vertel dat dit tyd is. Daar is so 'n nuttige ding VMWare.PowerCLI, dit is 'n uitbreiding vir Windows Powershell wat jou toelaat om aan die hipervisor te koppel en dit alles te vertel wat jy nodig het. Daar is ook baie artikels oor PowerCLI-instellings.

3. Proses

Die UPS was fisies gekoppel aan die com-poort van die 2008-bediener, gelukkig was dit daar. Alhoewel dit nie belangrik is nie - was dit moontlik om via 'n koppelvlakomskakelaar (MOXA) aan enige virtuele Windows-bediener te koppel. Verder word alle aksies uitgevoer op die masjien waaraan die UPS gekoppel is - Windows Server 2008, tensy uitdruklik anders vermeld. Die PowerChute Business Edition-agent is daarop geïnstalleer. Hier is die eerste subtiele punt: die agentdiens moet nie vanaf die stelsel geloods word nie, maar vanaf die gebruiker, anders sal die agent nie die cmd-lêer kan uitvoer nie.

Vervolgens het ons .Net Framework 4.7 geïnstalleer. 'n Herlaai word hier vereis, selfs al vra die raamwerk nie uitdruklik daarvoor na installasie nie, anders gaan dit nie verder nie. Daarna kan daar nog opdaterings kom, wat ook geïnstalleer moet word.

Vervolgens het ons PowerShell 5.1 geïnstalleer. Vereis ook 'n herlaai, al vra hy nie.
Installeer dan PowerCLI 11.5. Nogal 'n onlangse weergawe, vandaar die vorige vereistes. Jy kan dit via die internet doen, daar is baie artikels hieroor, maar ons het dit reeds afgelaai, so ons het net al die lêers na die Modules-lêergids gekopieer.

Gemerk:

Get-Module -ListAvailable

Ok, ons sien ons het geïnstalleer:

Import-Module VMWare.PowerCLI

Ja, die Powershell-konsole word natuurlik as Administrateur bekendgestel.

Powershell-instellings.

  • Laat uitvoering van enige skrifte toe:

Set-ExecutionPolicy Unrestricted

  • Of jy kan net toelaat dat skrifsertifikate geïgnoreer word:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 

  • Laat PowerCLI toe om aan bedieners te koppel met ongeldige (verval) sertifikate:

Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false

  • Onderdruk die uitset van die PowerCLI-boodskap oor aansluiting by die ervaring-uitruilprogram, anders sal daar baie onnodige inligting in die log wees:

Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false

  • Stoor die gebruikersbewyse om by die VMWare-gasheer aan te meld om dit nie eksplisiet in die skrif te wys nie:

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

Nagaan sal wys wie ons gered het:

Get-VICredentialStoreItem

U kan ook die verbinding nagaan: Connect-VIServer-adres.

Die skrif self, byvoorbeeld: gekoppel, afgeskakel, ontkoppel net ingeval, die volgende opsies is moontlik:


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

4. Default.cmd

Dieselfde bondellêer wat deur die APC-agent bekendgestel word. Dit is geleë in "C: Program Files[(x86)]APCPowerChute Business Editionagentcmdfiles", en binne:

"C:Windowssystem32WindowsPowerShellv1.0powershell.exe" -Lêer "C:...shutdown_hosts.ps1"
Dit lyk asof alles gekonfigureer en nagegaan is, ons het selfs cmd geloods - dit werk korrek, skakel dit af.

Ons voer 'n opdraglêertoets vanaf die APC-konsole (daar is 'n toetsknoppie daar) - dit werk nie.

Hier is dit, daardie ongemaklike oomblik wanneer al die werk wat gedoen is tot niks gelei het nie.

5. Katarsis

Ons kyk na die taakbestuurder, ons sien cmd flitse, powershell flitse. Kom ons kyk van naderby - cmd *32 en, dienooreenkomstig, powershell *32. Ons verstaan ​​dit Die APC-agentdiens is 32-bis, wat beteken dat dit die ooreenstemmende konsole bestuur.

Ons begin powershell x86 as 'n administrateur, en installeer en konfigureer PowerCLI weer vanaf stap 3.

Wel, kom ons verander die powershell-oproeplyn:

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

6. Gelukkige einde!

Bron: will.com

Voeg 'n opmerking