Shutdown yang benar dari hypervisor VMWare ESXi pada level baterai kritis UPS APC

Di ruang terbuka terdapat banyak artikel tentang cara menyiapkan Edisi Bisnis PowerChute, dan cara menyambungkan ke VMWare dari PowerShell, tetapi entah mengapa semua ini tidak ditemukan di satu tempat, dengan penjelasan tentang poin-poin halus. Dan mereka.



1. Perkenalan



Terlepas dari kenyataan bahwa kita ada hubungannya dengan energi, terkadang masalah dengan listrik muncul. Di sinilah UPS berperan, tetapi baterainya, sayangnya, tidak tahan lama. Apa yang harus dilakukan? Matikan!



Selama semua server bersifat fisik, semuanya berjalan dengan baik, dengan PowerChute Business Edition membantu kami. Gratis, untuk 5 server, itu sudah cukup. Agen, server, dan konsol dipasang di satu mesin. Ketika akhir mendekati, agen cukup mengeksekusi file batch, di mana shutdown.exe / s / m dikirim ke server tetangga, dan kemudian mematikan OS-nya. Semua orang hidup.

Kemudian tibalah waktunya mesin virtual.



2. Latar belakang dan refleksi



Jadi apa yang kita punya? Tidak ada sama sekali - satu server fisik yang menjalankan Windows Server 2008 R2 dan satu hypervisor dengan beberapa mesin virtual, termasuk Windows Server 2019, dan Windows Server 2003, dan CentOS. Dan UPS lainnya - APC Smart-UPS.



Kami mendengar tentang NUT, tetapi kami belum mendapatkannya, kami hanya menggunakan apa yang ada, yaitu PowerChute Business Edition.



Hypervisor dapat mematikan mesin virtualnya dengan sendirinya, ia tetap hanya memberi tahu bahwa sudah waktunya. Ada hal yang sangat berguna VMWare.PowerCLI, ekstensi ini untuk Windows Powershell, hanya memungkinkan Anda untuk terhubung ke hypervisor dan memberitahukan semua yang Anda butuhkan. Ada juga banyak artikel tentang pengaturan PowerCLI di ruang terbuka.



3. Proses



UPS secara fisik terhubung ke com-port server 2008, karena UPS ada di sana. Meskipun ini tidak penting - dimungkinkan untuk terhubung melalui konverter antarmuka (MOXA) ke server Windows virtual apa pun. Selanjutnya, semua tindakan dilakukan pada mesin yang terhubung dengan UPS - Windows Server 2008, kecuali secara eksplisit dinyatakan lain. Agen PowerChute Business Edition telah diinstal di dalamnya. Berikut adalah poin halus pertama: layanan agen harus dimulai bukan dari sistem, tetapi dari pengguna, jika tidak, agen tidak akan dapat menjalankan file cmd.



Kemudian kami menginstal .Net Framework 4.7. Reboot diperlukan di sini , bahkan jika framework tidak secara eksplisit memintanya setelah instalasi, jika tidak maka tidak akan melangkah lebih jauh. Setelah itu, pembaruan mungkin masih datang, Anda juga perlu menginstalnya.



Selanjutnya, kami menginstal PowerShell 5.1.Booting ulang juga diperlukan , meskipun tidak diminta.

Selanjutnya, instal PowerCLI 11.5. Versi yang cukup baru, dari ini dan persyaratan sebelumnya. Bisa saja lewat internet banyak artikel tentang ini, tapi sudah kita download, jadi kita copy saja semua file ke folder Modules.



Diperiksa:



Get-Module -ListAvailable


Ok, kita lihat, dipasang:



Import-Module VMWare.PowerCLI


Ya, konsol Powershell tentu saja diluncurkan dari Administrator.



Pengaturan Powershell.



  • Izinkan eksekusi skrip apa pun:


Set-ExecutionPolicy Unrestricted


  • Atau izinkan hanya abaikan sertifikat skrip:


Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 


  • Izinkan PowerCLI untuk menyambung ke server dengan sertifikat yang tidak valid (kedaluwarsa):


Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false


  • Tekan output dari pesan PowerCLI tentang bergabung dengan program pertukaran, jika tidak, akan ada banyak hal yang tidak perlu di log:


Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false


  • Simpan kredensial pengguna untuk masuk ke host VMWare agar tidak secara eksplisit mengeksposnya di skrip:


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


Memeriksa akan menunjukkan siapa yang telah kita selamatkan:



Get-VICredentialStoreItem


Anda juga dapat memeriksa koneksi: alamat Connect-VIServer.



Skrip itu sendiri, baik, misalnya: terhubung, dipadamkan, terputus untuk berjaga-jaga, opsi dimungkinkan:




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


4. Default.cmd



File batch yang sama dengan yang diluncurkan agen APC. Terletak di "C: \ Program Files [(x86)] \ APC \ PowerChute Business Edition \ agent \ cmdfiles", dan di dalam:



"C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe" -File "C : \ ... \ shutdown_hosts.ps1 "

Tampaknya semuanya sudah diatur dan diperiksa, bahkan memulai cmd - berfungsi dengan benar, mematikannya.



Kami menjalankan pemeriksaan file perintah dari konsol APC (ada tombol Test) - tidak berhasil.



Ini dia, momen canggung ketika semua pekerjaan yang dilakukan tidak menghasilkan apa-apa.



5. Katarsis



Kami melihat task manager, kami melihat - cmd berkedip, PowerShell berkedip. Mari kita lihat lebih dekat - cmd * 32 dan, karenanya, PowerShell * 32. Kami memahami bahwa layanan agen APC adalah 32-bit, yang berarti ia meluncurkan konsol yang sesuai.



Luncurkan PowerShell x86 sebagai administrator, instal dan konfigurasikan PowerCLI dari langkah 3 lagi,



dan ubah baris untuk memanggil PowerShell:



"C:\Windows\<b>SysWOW64</b>\WindowsPowerShell\v1.0\powershell.exeโ€ฆ


6. Akhir yang bahagia!




All Articles