web-dev-qa-db-ja.com

ESXi 5でSSHを介してホストをシャットダウンして、ゲストを適切にシャットダウンする方法を教えてください。

ESXi 5ホストにSSHでログインしています。

すべてのゲストでVMwareツールが実行されているため、ホストによって適切にシャットダウンできます。

VSphereクライアントのこのメニューオプションに相当するものを希望します。

enter image description here

すべてのゲスト(VMwareツールが実行されている場合)を自動的にシャットダウンし、次にホスト自体をシャットダウンします。

ESXi 5コマンドラインにそのような「スマートな」shutdown allコマンドはありますか?

4
mit

答えを見つけたと思います。このスクリプトはそれを行うことができます:

http://www.virtu-al.net/2010/01/06/powercli-shutdown-your-virtual-infrastructure/

VMが完全にシャットダウンされるのを待つ17行目以降の部分に注意してください

セルゲイありがとう!

 Connect-VIServer MyVIServer 
 2 
 3#すべてのESXホストを取得
 4 $ ESXSRV = Get-VMHost 
 5 
 6#ESXホスト上の各VMに対して
 7 Foreach($ VM in($ ESXSRV | Get-VM)){
 8#ゲストを完全にシャットダウンします
 9 $ VM | Shutdown-VMGuest -Confirm:$ false 
 10} 
 11 
 12#電源が入っている残りのゲストがスタックしていると想定するまでの待機時間を設定します
 13 $ waittime = 200 #Seconds 
 14 
 15 $ Time =(Get-Date).TimeofDay 
 16 do {
 17#VMがシャットダウンするのを待つcleanly 
 18 sleep 1.0 
 19 $ timeleft = $ waittime-($ Newtime.seconds)
 20 $ numvms =($ ESXSRV | Get-VM | Where {$ _。PowerState -eq "poweredOn"})。Count 
 21「$ numvms VMのシャットダウンを待機中、または$ timeleft秒まで待機」
 22 $ Newtime =(Get-Date).TimeofDay-$ Time 
 23}まで((@($ ESXSRV | Get-VM | Where {$ _。PowerState -eq "poweredOn"})。Count)-eq 0 -or($ Newtime).Seconds -ge $ waittime) 
 24 
 25#ESXホストをシャットダウンします
 26 $ ESXSRV | Foreach {Get-View $ _。ID} | Foreach {$ _。ShutdownHost_Task($ TRUE)} 
 27 
 28 Write-Host "Shutdown Complete" 
2
mit