vSphere リソースプール内のVMにPingをとばして生存確認
1360 ワード
#vSphereのリスト上で "PoweredON" となっていてもVMの "OS" が生きているかどうか、個別に確認したい
#vSphereに接続
Connect-VIServer -Server vcsa.vsphere.local -Protocol https -User '[email protected]' -Password 'Password'
#リソースプール、VM、GuestOSの情報を収集
$respool = Get-ResourcePool satatest
$vmlist = Get-VM -Location $respool
$guestlist = Get-VMGuest $vmlist
#数が一致するか確認
$vmlist.count
$guestlist.count
#ipのリストを作ってみる
#と同時に、For文でPingを飛ばしてみる
$iplist = @()
for ($i=0; $i -lt $guestlist.count ; $i++){
if( $vmlist[$i].PowerState -eq "PoweredOn" ){
$iplist += $guestlist[$i].IPAddress[0]
echo $vmlist[$i].Name
ping $iplist[$i]
}else{
$iplist += "noip"
echo $vmlist[$i].Name " notRunning"
}
}
#後記
$vmlist.PowetState の値 PoweredOn と
$guestlist.State の値 Running は情報が一致するので同等とみて良さそう
従って、どちらかの情報をとってIPをゲットするのがよい
しかし、そも.そも$guestlist の中でOSが生きている、つまりRunningの時でないとIPは表示されない
従って、$guestlist.IPAddress の値が入っているか、NULLかで判断してもよいかもしれない。
IPの情報は、vSphereのリソースプールからVMリストを右に表示してExportでIPの項目を選ぶことでゲットできる
Pingの内容をすべて確認するのは厳しいので、上記ExportのPoweredONの数とPingの成功の数を比較し、同一であればPowerdONのVMはPingレスポンスがあると考えてよい。
#PoweredOnのみをカウント
$PoweredOn=0
for ($i=0; $i -lt $guestlist.count ; $i++){
if( $vmlist[$i].PowerState -eq "PoweredOn" ){
$poweredOn++
}
}
echo $PoweredOn
Author And Source
この問題について(vSphere リソースプール内のVMにPingをとばして生存確認), 我々は、より多くの情報をここで見つけました https://qiita.com/dream11/items/c7a959e9e99b406bda1b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .