Veebis on palju artikleid PowerChute Business Editioni seadistamisest ja VMWare'iga ühendamisest PowerShelli kaudu, kuid kõike seda kogenud detailide kirjeldustega pole kuskil koondatud. Aga need detailid on olulised.
1. Sissejuhatus
Kuigi me oleme mingil määral seotud energiatööstusega, esinevad elektriprobleemid ikka ja jälle. Siin tuleb mängu UPS, kuid ka selle akud, kahjuks, ei kesta igavesti. Mida teha? Lülitada välja!
Kuni kõik serverid olid füüsilised, läksid asjad kenasti, meid päästis PowerChute Business Edition. Tasuta, 5 serverite, mis oli täiesti piisav. Ühel masinal oli agent, server ja konsool installitud. Kui aeg lähenes, käivitas agent lihtsalt skripti, milles naaberserveritele saadeti shutdown.exe /s /m ning seejärel sulges oma operatsioonisüsteemi. Kõik on terved.
Siis saabus aeg virtuaalmasinad.
2. Algandmed ja mõtted
Nii et mida me omame? Üks füüsiline server Windows Server 2008 R2 ja üks hüperviisor mitme virtuaalmasinaga, sealhulgas Windows Server 2019, Windows Server 2003 ja CentOS. Ja veel UPS – APC Smart-UPS.
Oleme NUT'ist kuulnud, kuid pole veel aega selle uurimiseks leidnud, oleme kasutanud ainult seda, mis oli käepärast, nimelt PowerChute Business Editioni.
Hüperviisor suudab ise lõpetada oma virtuaalmasinad, jääb vaid öelda, et on aeg. VMWare.PowerCLI on selline kasulik tööriist, mis on Windows Powershelli laiendus, mis just võimaldab hüperviisoriga ühenduda ja edastada kõik vajalikud käsklused. PowerCLI seadistuste kohta on ka palju artikleid saadaval.
3. Protsess
UPS on füüsiliselt ühendatud serveri 2008 COM-porti, mis oli õnneks olemas. Kuigi see ei ole kriitiline – oleks võinud ühenduda ka liidese muunduri (MOXA) kaudu mistahes virtuaalse Windows serveriga. Edasi toimuvad kõik toimingud masinas, kuhu UPS on ühendatud – Windows Server 2008, kui ei ole selgesõnaliselt teisiti märgitud. Sellele on paigaldatud PowerChute Business Edition agent. Siin on esimene peene detail: agendi teenus tuleb käivitada mitte süsteemilt, vaid kasutajalt, vastasel juhul ei saa agent cmd-faili käivitada.
Seejärel paigaldasime .Net Framework 4.7. Nüüd on vajalik taaskäivitamine, isegi kui raamistik seda selgelt pärast installimist ei nõua, muidu ei saa edasi liikuda. Pärast võivad tulla ka uuendused, mis tuleb samuti installida.
Seejärel paigaldasime PowerShell 5.1. Samuti on vajalik taaskäivitamine, isegi kui ta seda ei küsi.
Edasi minge PowerCLI 11.5 installatsioonile. See on üsna värske versioon, seega ka eelnevad nõuded. Seda on võimalik teha läbi interneti, mille kohta on palju artikleid, kuid meil on see juba alla laetud, seega kopeerisime lihtsalt kõik failid kausta Modules.
Kontrollisime:
Get-Module -ListAvailableSelge, näeme, et oleme installinud:
Import-Module VMWare.PowerCLIJah, Powershelli konsool on kindlasti avatud administraatori õigustega.
Powershell seadistused.
- Lubage skriptide täitmine:
Set-ExecutionPolicy Unrestricted- Või lubage ainult ignoreerida skriptide sertifikaate:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned - Lubage PowerCLI ühendus serveritega, millel on kehtetud (aegunud) sertifikaadid:
Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false- Vaikige PowerCLI sõnumi väljund, kui liituda oskuste programmist, vastasel juhul on logis liiga palju liigset:
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false- Salvesta kasutaja sisselogimisandmed VMWare hostile, et neid skriptis selgelt mitte kuvada:
New-VICredentialStoreItem -Host address -User user -Password 'password'Kontroll näitab, mida oleme salvestanud:
Get-VICredentialStoreItemSaame ka ühenduse kontrollida: Connect-VIServer address.
Näiteks skript: ühendatud, välja lülitatud, igaks juhuks katkestatud, erinevad variandid on võimalikud:
Connect-VIserver -Server $vmhost
Stop-VMHost $vmhost -force -Confirm:$false
Disconnect-VIserver $vmhost -Confirm:$false
4. Default.cmd
See on see käskluste fail, mida käivitab APC agent. Asub "C:Program Files[(x86)]APCPowerChute Business Editionagentcmdfiles", ning seal sees:
"C:Windowssystem32WindowsPowerShellv1.0powershell.exe" -File "C:…shutdown_hosts.ps1"
Näib, et oleme kõik seadistanud ja kontrollinud, isegi käivitasime cmd – töötab õigesti, lülitab välja.
Käivitame APC konsoolis käskluste faili kontrollimise (seal on nupp Test) – ei tööta.
Siin on see ebamugav moment, kui kogu tehtud töö ei viinud kuhugi.
5. Katarssis
Vaatajapane, näeme – cmd jättis jälje, powershell ka jäi silma. Vaadates lähemalt – cmd *32 ja vastavalt powershell *32. Mõistame, et APC agendi teenus on 32-bitine, see tähendab, et see käivitab vastava konsooli.
Käivitame powerShell x86 administraatorina, teeme veel korra PowerCLI installi ja seadistamise punktist 3.
Noh ja muudame powerShelli kutsumise rida:
"C:Windows<b>SysWOW64</b>WindowsPowerShellv1.0powershell.exe…6. Happy end!
Allikas: habr.com
