Na internete je množstvo článkov o tom, ako nastaviť PowerChute Business Edition a ako sa pripojiť k VMWare cez PowerShell, ale nikde som nenašiel všetko na jednom mieste, vrátane popisu jemných detailov. A tých je dosť.
1. Úvod
Napriek tomu, že máme istý vzťah k energetike, občas vznikajú problémy s elektrinou. Tu prichádza do hry UPS, ale jej batérie, žiaľ, nie sú večné. Čo robiť? Vypnúť!
Kým všetky servery boli fyzické, išlo to celkom dobre, pomáhal nám PowerChute Business Edition. Bezplatná verzia, na 5 serverov, čo bolo celkom dostačujúce. Na jednom počítači bol nainštalovaný agent, server a konzola. Pri blížiacom sa konci agent jednoducho spustil dávkový súbor, ktorý posielal na susedné servery shutdown.exe /s /m, a potom vypol svoj OS. Všetko prežilo.
Potom prišiel čas virtuálních strojů.
2. Východiskové údaje a úvahy
Takže, čo máme? Celkom málo - jeden fyzický server s Windows Server 2008 R2 a jeden hypervízor s niekoľkými virtuálnymi strojmi, medzi ktorými sú Windows Server 2019, Windows Server 2003 a CentOS. A ešte UPS - APC Smart-UPS.
O NUT sme počuli, ale zatiaľ nebol čas na jeho štúdium, používali sme len to, čo bolo po ruke, a to konkrétne PowerChute Business Edition.
Hypervízor dokáže sám vypínať svoje virtuálne stroje, zostáva len oznámiť mu, že je čas. Existuje taká užitočná vec VMWare.PowerCLI, čo je rozšírenie pre Windows PowerShell, ktoré umožňuje pripojiť sa k hypervízoru a povedať mu všetko, čo potrebuje vedieť. O nastaveniach PowerCLI je tiež množstvo článkov na internete.
3. Proces
UPS bol fyzicky pripojený k COM portu servera 2008, našťastie tam bol. Aj keď to nie je zásadné - bolo by možné pripojiť sa cez prevodník (MOXA) k akémukoľvek virtuálnemu Windows serveru. Ďalej sa všetky úkony vykonávajú na počítači, ku ktorému je pripojený UPS - Windows Server 2008, pokiaľ nie je uvedené inak. Na ňom bol nainštalovaný agent PowerChute Business Edition. Tu je prvý jemný detail: službu agenta je potrebné spustiť nie ako systém, ale ako používateľ, inak agent nebude schopný vykonať súbor CMD.
Ďalej sme nainštalovali .Net Framework 4.7. Tu je potrebné reštartovanie, aj keď rámec to vyslovene nežiadá po inštalácii, inak nebude ďalej pokračovať. Potom môžu prísť aktualizácie, tie je tiež potrebné nainštalovať.
Ďalej sme nainštalovali PowerShell 5.1. Taktiež je potrebné reštartovanie, aj keď to nežiada.
Ďalej inštalácia PowerCLI 11.5. Pomerne čerstvá verzia, preto aj predchádzajúce požiadavky. Môže sa to robiť cez internet, existuje mnoho článkov, ale my sme to už mali stiahnuté, takže sme jednoducho skopírovali všetky súbory do priečinka Modules.
Skontrolovali sme:
Get-Module -ListAvailableOK, vidíme, že sme nainštalovali:
Import-Module VMWare.PowerCLIÁno, konzola Powershell je samozrejme spustená ako administrátor.
Nastavenia Powershell.
- Umožniť vykonanie akýchkoľvek skriptov:
Set-ExecutionPolicy Unrestricted- Alebo povoliť len ignorovanie certifikátov skriptov:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned - Povoliť PowerCLI pripojenie k serverom s neplatnými (preloženými) certifikátmi:
Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false- Potlačiť výstup správy PowerCLI o pripojení k programu výmeny skúseností, inak v logu bude veľa zbytočného:
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false- Uložiť prihlasovacie údaje používateľa pre prístup na hostiteľa VMWare, aby sme ich jasne nezverejnili v skripte:
New-VICredentialStoreItem -Host address -User user -Password 'password'Kontrola ukáže, koho sme uložili:
Get-VICredentialStoreItemMôžeme skontrolovať aj pripojenie: Connect-VIServer address.
Samotný skript, napríklad: pripojíme sa, vypneme, pre istotu sa odpojíme, možné varianty:
Connect-VIserver -Server $vmhost
Stop-VMHost $vmhost -force -Confirm:$false
Disconnect-VIserver $vmhost -Confirm:$false
4. Default.cmd
Tento príkazový súbor, ktorý sa spúšťa agentom APC. Leží v "C:Program Files[(x86)]APCPowerChute Business Editionagentcmdfiles", a vo vnútri:
«C:Windowssystem32WindowsPowerShellv1.0powershell.exe» -File «C:…shutdown_hosts.ps1»
Zrejme sme všetko nastavili a skontrolovali, dokonca sme spustili cmd – funguje to správne, vypína.
Spúšťame z konzoly APC kontrolu príkazového súboru (je tam tlačidlo Test) – nefunguje.
Tu je ten nepríjemný moment, keď celá vykonaná práca nemala žiadny výsledok.
5. Katarsis
Pozeráme do správcu úloh, vidíme – na chvíľu sa objavil cmd, na chvíľu powershell. Pozorne sa pozeráme – cmd *32 a, samozrejme, powershell *32. Rozumieme, že služba agenta APC je 32-bitová, takže spúšťa príslušnú konzolu.
Spúšťame powershell x86 ako administrátor, opakujeme inštaláciu a nastavenie PowerCLI z bodu 3.
A meníme riadok volania powershell:
"C:Windows<b>SysWOW64</b>WindowsPowerShellv1.0powershell.exe…6. Šťastný koniec!
Zdroj: habr.com
