これは、前々から面倒だなと思っていたので、PowerCLIを利用為て仮想マシンとESXiホストをシャットダウンするスクリプトを作成しました。
尚、PowerCLI6系での動作を確認しております。
というのも、今まであった「Shutdown-VMGuest」コマンドレットがなくなり、「Stop-VMGuest」に変わっていたりするためです。
参考:
VMware vSphere PowerCLI 6.0 Release 1 Release Notes
https://www.vmware.com/support/developer/PowerCLI/PowerCLI60R1/powercli60r1-releasenotes.html
ログイン先もvCenter Serverではなく、ESXiにすることで、ゲストのシャットダウンとホストのシャットダウンまでを一括でできます。
UPSのスクリプトの1部として利用頂いてもよいかと思います。
#
# ゲストとホストの一括シャットダウン
#
Add-PSSnapin VMware.VimAutomation.Core
#ESXiホストのIP
$ESXiHostIP = X.X.X.X
$msg = "現在シャットダウン待機中です"
try
{
#ESXiホストのログイン情報を入れる
$vi = Connect-VIServer -Server $ESXiHostIP -User ユーザー名 -Password パスワード
#電源ON仮想マシンを一気いっきにシャットダウン
$vms = Get-VM | Where-Object { $_.Name -ne $vCenterVMName -and $_.PowerState -eq 'PoweredOn' } | Stop-VMGuest -Confirm:$false
#電源ON仮想マシン一覧を表示
Get-VM | Where-Object { $_.Name -ne $vCenterVMName -and $_.PowerState -eq 'PoweredOn' }
#すべての仮想マシンの電源が落ちるまで待つ
do
{
Start-Sleep 10
$vms = Get-VM | Where-Object { $_.Name -ne $vCenterVMName -and $_.PowerState -eq 'PoweredOn' }
Get-VM | Where-Object { $_.Name -ne $vCenterVMName -and $_.PowerState -eq 'PoweredOn' }
$msg
}
while($vms.Length -gt 1)
#ESXiホストをシャットダウンする
Stop-VMHost $ESXiHostIP -Force:$true -Confirm:$false
}
catch
{
$vi
}
#ESXiからシャットダウン
disConnect-VIServer
シャットダウンの順番が必要な仮想マシンはこのスクリプトを流す前に、上部で順番に仮想マシンをシャットダウンするような手順を書くとよいかと思います。
きっと、法廷電源設備点検の前には必要なスクリプトでは...。
0 件のコメント:
コメントを投稿