Penutupan hipervisor VMWare ESXi yang betul apabila tahap cas bateri UPS APC adalah kritikal

Terdapat banyak artikel di luar sana tentang cara mengkonfigurasi PowerChute Business Edition dan cara menyambung ke VMWare daripada PowerShell, tetapi entah bagaimana saya tidak dapat mencari semua ini di satu tempat, dengan penerangan tentang perkara-perkara halus. Tetapi mereka wujud.

1. Pengenalan

Walaupun fakta bahawa kita mempunyai hubungan dengan tenaga, masalah dengan elektrik kadang-kadang timbul. Di sinilah UPS mula bermain, tetapi baterinya, malangnya, tidak tahan lama. Apa nak buat? Matikan!

Walaupun semua pelayan adalah fizikal, semuanya berjalan lancar, PowerChute Business Edition membantu kami. Percuma, untuk 5 pelayan, yang cukup memadai. Ejen, pelayan dan konsol telah dipasang pada satu mesin. Apabila penghujungnya semakin hampir, ejen hanya melaksanakan fail arahan yang menghantar shutdown.exe /s /m ke pelayan jiran, dan kemudian menutup OSnya. Semua orang masih hidup.
Kemudian tiba masanya untuk mesin maya.

2. Latar belakang dan refleksi

Jadi apa yang kita ada? Tiada langsung - satu pelayan fizikal dengan Windows Server 2008 R2 dan satu hypervisor dengan beberapa mesin maya, termasuk Windows Server 2019, Windows Server 2003 dan CentOS. Dan satu lagi UPS - APC Smart-UPS.

Kami mendengar tentang NUT, tetapi belum sempat mempelajarinya lagi; kami hanya menggunakan apa yang ada, iaitu PowerChute Business Edition.

Hypervisor boleh mematikan mesin mayanya sendiri; yang tinggal hanyalah memberitahunya bahawa sudah tiba masanya. Terdapat satu perkara yang berguna VMWare.PowerCLI, ini adalah sambungan untuk Windows Powershell yang membolehkan anda menyambung ke hypervisor dan memberitahu semua yang anda perlukan. Terdapat juga banyak artikel di luar sana tentang tetapan PowerCLI.

3. Proses

UPS disambungkan secara fizikal ke port com pelayan 2008, mujurlah ia ada di sana. Walaupun ini tidak penting - adalah mungkin untuk menyambung melalui penukar antara muka (MOXA) ke mana-mana pelayan Windows maya. Selanjutnya, semua tindakan dilakukan pada mesin yang disambungkan dengan UPS - Windows Server 2008, melainkan dinyatakan sebaliknya secara eksplisit. Ejen PowerChute Business Edition telah dipasang padanya. Inilah perkara halus pertama: perkhidmatan ejen mesti dilancarkan bukan dari sistem, tetapi dari pengguna, jika tidak, ejen tidak akan dapat melaksanakan fail cmd.

Seterusnya kami memasang .Net Framework 4.7. But semula diperlukan di sini, walaupun rangka kerja tidak memintanya secara eksplisit selepas pemasangan, jika tidak, ia tidak akan pergi lebih jauh. Selepas itu, kemas kini mungkin masih datang, yang juga perlu dipasang.

Seterusnya kami memasang PowerShell 5.1. Juga memerlukan but semula, walaupun dia tidak bertanya.
Seterusnya, pasang PowerCLI 11.5. Versi yang agak terkini, oleh itu keperluan sebelumnya. Anda boleh melakukannya melalui Internet, terdapat banyak artikel tentang ini, tetapi kami telah memuat turunnya, jadi kami hanya menyalin semua fail ke folder Modul.

Disemak:

Get-Module -ListAvailable

Ok, kami nampak kami telah memasang:

Import-Module VMWare.PowerCLI

Ya, konsol Powershell sudah tentu dilancarkan sebagai Pentadbir.

Tetapan Powershell.

  • Benarkan pelaksanaan mana-mana skrip:

Set-ExecutionPolicy Unrestricted

  • Atau anda hanya boleh membenarkan sijil skrip diabaikan:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 

  • Benarkan PowerCLI menyambung ke pelayan dengan sijil tidak sah (tamat tempoh):

Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false

  • Sekat output mesej PowerCLI tentang menyertai program pertukaran pengalaman, jika tidak, akan terdapat banyak maklumat yang tidak diperlukan dalam log:

Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false

  • Simpan kelayakan pengguna untuk log masuk ke hos VMWare supaya tidak menunjukkannya secara eksplisit dalam skrip:

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

Semakan akan menunjukkan siapa yang kami simpan:

Get-VICredentialStoreItem

Anda juga boleh menyemak sambungan: Alamat Connect-VIServer.

Skrip itu sendiri, sebagai contoh: disambungkan, dimatikan, diputuskan untuk berjaga-jaga, pilihan berikut mungkin:


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

4. Lalai.cmd

Fail kelompok yang sama yang dilancarkan oleh ejen APC. Ia terletak dalam "C:Program Files[ (x86)]APCPowerChute Business Editionagentcmdfiles", dan di dalam:

"C:Windowssystem32WindowsPowerShellv1.0powershell.exe" -Fail "C:...shutdown_hosts.ps1"
Nampaknya semuanya telah dikonfigurasikan dan diperiksa, kami juga melancarkan cmd - ia berfungsi dengan betul, mematikannya.

Kami menjalankan ujian fail arahan daripada konsol APC (terdapat butang Ujian di sana) - ia tidak berfungsi.

Inilah, saat yang janggal apabila semua kerja yang dilakukan tidak membawa apa-apa.

5. Katarsis

Kami melihat pengurus tugas, kami melihat cmd berkelip, powershell berkelip. Mari kita lihat lebih dekat - cmd *32 dan, oleh itu, powershell *32. Kami faham itu Perkhidmatan ejen APC adalah 32-bit, yang bermaksud ia menjalankan konsol yang sepadan.

Kami melancarkan powershell x86 sebagai pentadbir, dan memasang serta mengkonfigurasi PowerCLI dari langkah 3 sekali lagi.

Baiklah, mari tukar talian panggilan powershell:

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

6. Selamat berakhir!

Sumber: www.habr.com

Tambah komen