Azure Cloud Shell の PowerShell で仮想マシン VM を一括再起動するツールを作成する方法


ここでは、 Azure Cloud Shell の PowerShell で仮想マシン VM を一括再起動するツールを作成します。



ツール作成方法

Azure Cloud Shell の PowerShell で、下記の ps ファイルを作成します。リソース名と仮想マシン名に再起動対象とするものを指定します。


ps ファイルを実行すると、指定した仮想マシン VM を一括で再起動することができます。

・サンプルコード

$targetRg = "リソースグループ名"
$targetVmArray = @('仮想マシン名1','仮想マシン名2','仮想マシン名3')

#実行確認メッセージ表示
$title = "*** 実行確認 ***"
$message = "仮想マシン VM 一括再起動を実行してよろしいですか?"
$objYes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes","実行する"
$objNo = New-Object System.Management.Automation.Host.ChoiceDescription "&No","実行しない"
$objOptions = [System.Management.Automation.Host.ChoiceDescription[]]($objYes, $objNo)
$resultVal = $host.ui.PromptForChoice($title, $message, $objOptions, 1)

if ($resultVal -ne 0) { exit }


#VM 一括再起動
foreach($targetVm in $targetVmArray){

  $currentDate = get-date (get-date).AddHours(9) -UFormat "%Y-%m-%d %H:%M:%S"
  Write-Host $currentDate $targetVm "を再起動します。"

  Restart-AzVM -ResourceGroupName $targetRg -Name $targetVm

  Start-Sleep -s 1
}

#再起動後の 仮想マシン VM の状態を確認
write-Host ""
write-Host "再起動後の仮想マシン VM の状態"

foreach($targetVm in $targetVmArray){

  $vmState = Get-AzVM -ResourceGroupName $targetRg -Name $targetVm -Status | Select @{n="$targetVm Status"; e={$_.Statuses[1].Code}}

  $currentDate = get-date (get-date).AddHours(9) -UFormat "%Y-%m-%d %H:%M:%S"
  write-Host $currentDate $vmState
}


また、下記の記事の方法で、Azure Cloud Shell で他の作業担当者( 他の Azure アカウント )と作成した ps ファイルを共有して利用することができます。

Azure Cloud Shell にて複数アカウントで使用できる共有フォルダ・ファイルを作成する方法





スポンサーリンク

0 件のコメント :

コメントを投稿