検索
連載

Azure VMのデプロイ自動化にも役立つ「マネージド実行コマンド」、従来の「アクション実行コマンド」との違いは?Microsoft Azure最新機能フォローアップ(188)

MicrosoftはAzure仮想マシンの新機能として、「マネージド実行コマンド」の一般提供を開始しました。既に提供されていた「アクション実行コマンド」とは何が違うのでしょうか。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「Microsoft Azure最新機能フォローアップ」のインデックス

Microsoft Azure最新機能フォローアップ

マネージド実行コマンドは、アクション実行マネージドの機能強化版

 Microsoftは2023年2月初め、「Azure仮想マシン」(Azure VM)およびスケールセットの新機能として「マネージド実行コマンド(Managed Run Command)」の一般提供を開始しました。

 Azure VMでは、以前から「アクション実行コマンド(Action Run Command)」が利用できます。アクション実行コマンドは、「Azureポータル」にある「Azure VMブレード」の「操作|実行コマンド」に用意されています。事前に定義されたコマンドをVMエージェントを介してゲストOSで実行し、その結果を取得できます(画面1)。

画面1
画面1 Windows VMの汎用的なアクション実行コマンド「RunPowerShellScript」を使用すると、PowerShellの任意のコマンドラインやスクリプトを記述して、ゲストOSで実行できる

 新たに一般提供が開始されたマネージド実行コマンドは、アクション実行コマンドと同じVMエージェントのチャネルを介してカスタムスクリプトを実行できます。現在、Azure CLI(az vm run-command)、PowerShell(Set-AzVMRunCommandなど)、REST APIから利用可能です。近い将来には、Azureポータルからも実行できるようになる予定です。

 簡単なスクリプトを実行してすぐに結果を得たいのであれば、汎用(はんよう)的なアクション実行コマンド「RunPowerShellScript」を利用するのが簡単です。マネージド実行コマンドは、アクション実行コマンドに対して次の機能強化が行われています。

  • ARM(Azure Resource Manager)デプロイテンプレートを介したマネージド実行コマンドの実行をサポート
  • 複数スクリプトの並列実行
  • スクリプトの順次実行
  • スクリプトのタイムアウト指定
  • 長い実行時間(時間単位や日単位)のスクリプトサポート
  • 安全な方法でシークレットを渡す機能

 アクション実行コマンドとは異なり、マネージド実行コマンドは、複数のスクリプトを同時に実行して、その進行状況を管理し、実行結果の出力を保持することができます。また、ARMテンプレートでスクリプトとパラメーターを用いてAzure VMやスケールセットのデプロイを自動化する際にも活用できます。オプションで、スクリプトの出力を外部ストレージ(ストレージBLOB)に保存したり、異なるユーザーアカウントの資格情報で実行したりすることも可能です(既定はWindowsのSYSTEM、Linuxのroot)。詳しい使用方法などは、公式ドキュメントで確認してください。

Azure CLIでの実行例

 Azure CLI(Azure Cloud Shellから実行可能)でマネージド実行コマンドを使用して、簡単なスクリプトを実行するには、次の一連のコマンドラインを実行します。

$resourceGroupName = "リソースグループ名"
$vmName = "VM名"
$runCommandName ="実行コマンド名"
az vm run-command create --name $runCommandName --vm-name $vmName --resource-group $resourceGroupName --script "スクリプト"
az vm run-command list --vm-name $vmName --resource-group $resourceGroupName
az vm run-command show --name $runCommandName --vm-name $vmName --resource-group $resourceGroupName --expand instanceView
az vm run-command delete --name $runCommandName --vm-name $vmName --resource-group $resourceGroupName

 実行結果は「az vm run-command show」コマンドの「instanceView.output」に出力されるため、実行結果だけ取り出したい場合は「--query instanceViw.output」パラメーターを付けるとすっきりするでしょう(画面2画面3)。

画面2
画面2 「az vm run-command create」コマンドはマネージド実行コマンドのリソースを作成し、Azure VMのゲストOSで実行する
画面3
画面3 「az vm run-command list」コマンドで進行状況を確認し、「az vm run-command show」コマンドでスクリプトの出力結果を確認する

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP 2009 to 2022(Cloud and Datacenter Management)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る