初めてのAzure Automation(Runbook使って仮想マシンを起動する方法)
初めてAzure Automationを利用する方向けに、Runbookを使って処理を自動化するまでの手順を紹介します。
AutomationアカウントやRunbookのリソース作成、マネージドIDの設定、Runbookの作成、テスト、公開までの一連の流れを順を追って確認しています。
PowerShellを使用して仮想マシン(Azure VM)を起動するRunbookを例に手順を確認しています
Runbookでパラメーターを利用する方法についても確認しています。
※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
Automationアカウントの概要、リソース作成手順、権限付与設定
Azure Automationアカウントとは
Azure Automationは、クラウドやオンプレミス環境にわたる自動化タスクを実行できる、Azure上で提供されているサービスです。
Azure Automationアカウントは、Azure Automationサービスを利用するためのAzure上のリソースです。
Runbookを利用したプロセスの自動化や、構成管理、更新管理などの機能が提供されています。
構成管理では、Desired State Configuration(DSC)を使用したWindowsサーバーの構成管理や、変更管理などの機能が利用可能です。
Azure上の仮想マシンだけでなく、非Azure環境の仮想マシンやオンプレミスのサーバーも管理できます。
※Azure Automation Update Managementは廃止が予定されています。
※Azure Automation State Configurationは廃止が予定されています。
Runbookとは
Runbookは、実行する処理内容を記載したスクリプトです。
Azure Automationでは、プロセス自動化の機能として提供されています。
PowerShellやPythonなどを使用して、自動化されたワークフローを記述できます。
Azure Automation の Runbook の種類
AutomationアカウントにRunbookを作成して利用します。
1つのAutomationアカウントに対して、複数のRunbookを作成することが可能です。
Runbookは、スケジュール設定やWebhookを使って呼び出すことができます。
例えば、Azure Monitorのアラート通知時にWebhookを利用してRunbookを呼び出すことで、障害時の対応処理の自動化などにも活用できます。
Automationアカウントのリソースを作成
Azure Portalを使用してAutomationアカウントを作成します。
Automationアカウント名は"aa-test-01″としています。
スタンドアロン Azure Automation アカウントを作成する
AutomationアカウントにおけるマネージドIDとは?
一言で言うと、Runbookでリソースを操作するための権限を得るための設定です。
Azure AutomationアカウントでRunbookを実行する際、操作対象のリソースに対して認証が行われます。
その方法の一つとして、マネージドIDを利用する方法があります。
マネージドIDには、"システム割り当てマネージドID"と"ユーザー割り当てマネージドID"の2種類があります。
マネージドIDの種類
マネージドID(Azure Automation アカウントの認証の概要)
マネージドIDには、リソースに対する操作権限を割り当てます。
権限の割り当ては、操作対象のリソースで行います。
-
- システム割り当てマネージドID
- AutomationアカウントのマネージドIDに対して直接権限を付与する
- ユーザー割り当てマネージドID
- マネージドID自体のリソースを作成し権限を付与する
- 権限を付与したユーザー割り当てマネージドIDをAutomationアカウントのリソースに割り当てる
- 複数のAutomationアカウントに同じユーザー割り当てマネージドIDを共有して割り当てることができる
- システム割り当てマネージドID
システム割り当てマネージドID使ってリソースの操作権限を付与
Automationアカウントのリソース作成時にシステム割り当てを選択すると、リソース作成と同時にシステム割り当てマネージドIDが作成されます。
システム割り当てマネージドIDを使って、Automationアカウントに仮想マシンの操作権限を付与できます。
マネージドIDの設定は、Automationアカウントのアカウント設定のIDで行います。
システム割り当てマネージドIDはRunbookに割り当てるのではなく、Automationアカウントに対して割り当てます。
※PowerShellを利用して権限を割り当てる方法もあります。
※権限付与は必要最低限の権限で割り当てるようにします。
※仮想マシン共同作成者の権限を割り当てます。
—広告—
仮想マシンを起動するRunbookの作成、テスト、公開までの手順
RunbookにはPowerShellやPythonなど、いくつかの種類があります。
Azure Automation の Runbook の種類
今回はPowerShellを使用してRunbookを作成しています。
Runbookのリソースを作成
Runbookのリソースを作成します。
Runbook名は"vm-start-01″とします。
Runbookの種類にはPowerShellを選択し、ランタイムバージョンは7.2を指定します。
仮想マシンを起動するRunbookを作成
仮想マシンを起動するRunbookを作成します。
Azure PowerShellを利用した仮想マシンの操作方法については、こちらで紹介しています。
パラメーターを使ったPowerShell Runbookを作成
Runbookではパラメーターを利用することもできます。
パラメーターとして仮想マシン名やリソースグループを指定することも可能です。
PowerShell Runbook の入力パラメーターを構成する
仮想マシンを起動するRunbook(パラメーターを使う) | ||
Runbookの編集画面を表示します。 PowerShellで処理の内容を記載します。 |
![]() |
|
作成したRunbookは、パラメーター、システム割り当てマネージドIDを利用した認証、処理(仮想マシンの起動)を規定する内容で構成されています。
|
||
Runbookに記載したPowerShellです。
※複数のパラメーターがある場合は、,(カンマ)でパラメーター間を区切る必要があります。忘れるとエラーになります。 |
||
テスト画面を表示します。 |
![]() |
|
テストが正常に終了すると、完了と表示されます。 StatusにもSucceededと表示されます。 |
![]() |
Runbookを利用開始する場合は公開が必要
Runbookを保存するだけでは、Webhookなどで外部から呼び出したり実行することはできません。
Runbookを公開する必要があります。
※公開したバージョンのRunbookが実行されます。Runbookを更新した場合は、再度公開する必要があります。
Runbookを公開 | |
Runbookのメニューに"公開"があります。 |
![]() |
![]() |
|
![]() |
|
![]() |
|
![]() |
Runbookのスケジュール設定
Runbookのスケジュール設定手順については、こちらで紹介しています。
スケジュールで設定できる内容から平日のみ実行する場合のスケジュール設定例などを紹介しています。
最後に
Runbookを使った処理の自動化を行うまでの一連の手順を確認しました。
Automationアカウントの作成、Runbookリソースの作成、マネージドIDを利用した権限付与について、1つずつ作成し、仮想マシンの起動まで実施しました。
ギャラリーから作成済みのRunbookをインポートすることもでき、実際にはより手軽に処理の自動化が可能です。
非常に簡単に設定・利用でき、自動化に便利な機能だと感じました。
マイクロソフト公式サイトでもチュートリアルが公開されています。
チュートリアル: マネージド ID を使用して Automation PowerShell Runbook を作成する
Logic AppsのワークフローからRunbookを呼び出して実行させることができます。
手順については、こちらで紹介しています。
Runbook内の処理で実行時間帯を制限する事もできます。
PowerShell内で実行時間の制限する方法については、こちらで紹介しています。
Logic Appsのワークフローからも、仮想マシンを起動停止できます。
設定手順については、こちらで紹介しています。