Na internetu postoji mnogo članaka o tome kako konfigurirati PowerChute Business Edition i kako se povezati s VMWare iz PowerShella, ali sve to dosad nije bilo na jednom mjestu uz opis sitnih detalja. A njih ima.
1. Uvod
Unatoč tome što imamo određenu povezanost s energetikom, problemi s električnom energijom ponekad se javljaju. Tu na scenu stupa UPS, no njegove baterije, nažalost, nisu dugotrajne. Što učiniti? Isključiti!
Dok su svi poslužitelji bili fizički, stvari su išle prilično dobro, pomagao nam je PowerChute Business Edition. Besplatna, za 5 poslužitelja, što je bilo sasvim dovoljno. Na jednom računalu je bio instaliran agent, server i konzola. Kada se bližio kraj, agent bi jednostavno pokrenuo naredbeni datoteku, u kojoj su se susjednim poslužiteljima slale naredbe shutdown.exe /s /m, a zatim je isključio svoj OS. Svi su živi.
Potom je došao trenutak virtualnih mašina.
2. Ulazni podaci i razmišljanja
Dakle, što imamo? U suštini ništa – jedan fizički poslužitelj s Windows Server 2008 R2 i jedan hiperkomponent s nekoliko virtualnih računala, među kojima su i Windows Server 2019, i Windows Server 2003, i CentOS. I još UPS – APC Smart-UPS.
Čuli smo za NUT, ali još nismo imali priliku proučiti ga, koristili smo samo ono što smo imali pri ruci, a to je PowerChute Business Edition.
Hiperkomponent može sam završiti rad svojih virtualnih računala, samo mu je potrebno reći kada je vrijeme. Postoji takva korisna stvar VMWare.PowerCLI, to je proširenje za Windows Powershell, koje omogućuje povezivanje s hiperkomponentom i slanje mu svih potrebnih informacija. O postavkama PowerCLI također postoji mnogo članaka na internetu.
3. Proces
UPS je fizički povezan s COM portom poslužitelja 2008, srećom, on je bio dostupan. Iako to nije presudno – moglo se povezati putem sučelja (MOXA) s bilo kojim virtualnim Windows poslužiteljem. Nakon toga, svi koraci se izvode na računalu kojem je povezan UPS – Windows Server 2008, osim ako nije izričito navedeno drugačije. Tamo je instaliran agent PowerChute Business Edition. Tu je prvi sitni detalj: uslugu agenta treba pokretati ne kao sustav, već kao korisnika, inače agent ne može izvršiti cmd-datoteku.
Zatim smo instalirali .Net Framework 4.7. Potrebno je ponovno pokretanje, čak i ako okvir to izričito ne traži nakon instalacije, inače neće nastaviti. Kasnije mogu doći ažuriranja, također ih treba instalirati.
Zatim smo instalirali PowerShell 5.1. Također je potrebno ponovno pokretanje, čak i ako ne zatraži.
Sljedeće je instalacija PowerCLI 11.5. To je prilično svježa verzija, od čega proizlaze prethodni zahtjevi. Može se preuzeti putem interneta, za to postoji mnogo članaka, ali mi smo ga već preuzeli, tako da smo jednostavno kopirali sve datoteke u mapu Modules.
Provjerili smo:
Get-Module -ListAvailableU redu, vidimo, instalirali smo:
Import-Module VMWare.PowerCLIDa, Powershell konzola je svakako pokrenuta kao Administrator.
Powershell postavke.
- Omogućite izvršavanje svih skripti:
Set-ExecutionPolicy Unrestricted- Ili samo omogućite ignoriranje certifikata skripti:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned - Omogućite PowerCLI povezivanje na poslužitelje s nevažećim (isteklim) certifikatima:
Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false- Prigušite poruku PowerCLI o pridruživanju programu razmjene iskustava, inače će biti previše suvišnih stavki u dnevniku:
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false- Spremite korisničke vjerodajnice za prijavu na VMWare host tako da ih ne izlažete u skripti:
New-VICredentialStoreItem -Host address -User user -Password 'password'Provjera će pokazati koga smo spremili:
Get-VICredentialStoreItemMožete provjeriti i povezivanje: Connect-VIServer address.
Sama skripta, na primjer: povezali smo se, isključili, za svaki slučaj se odjavili, mogući su varijante:
Connect-VIserver -Server $vmhost
Stop-VMHost $vmhost -force -Confirm:$false
Disconnect-VIserver $vmhost -Confirm:$false
4. Default.cmd
To je onaj komandni datoteka koja se pokreće putem APC agenta. Leži u "C:Program Files[ (x86)]APCPowerChute Business Editionagentcmdfiles", a unutra:
„C:Windowssystem32WindowsPowerShellv1.0powershell.exe“ -File „C:…shutdown_hosts.ps1“
Izgleda da smo sve postavili i provjerili, čak smo pokrenuli cmd – radi ispravno, isključuje.
Pokrećemo provjeru komandne datoteke iz APC konzole (ima tipku Test) – ne radi.
Evo ga, taj neugodan trenutak kada sav učinjeni rad nije dao rezultata.
5. Katarza
Gledamo upravitelj zadataka, vidimo – pojavilo se cmd, pojavilo se powershell. Proučavamo pažljivije – cmd *32 i, sukladno tome, powershell *32. Shvaćamo da APC agent je 32-bitna usluga, što znači da pokreće odgovarajuću konzolu.
Pokrećemo powershell x86 kao administrator, ponavljamo postavljanje i konfiguraciju PowerCLI iz točke 3.
I mijenjamo redak poziva powershell:
"C:Windows<b>SysWOW64</b>WindowsPowerShellv1.0powershell.exe…6. Sretan završetak!
Izvor: habr.com
