初めてのAzure Automation(Runbook使って仮想マシンを起動する方法)
初めてAzure Automationを利用する方向けに、Runbookを使って処理を自動化するまでの手順を紹介します。
AutomationアカウントやRunbookのリソース作成、マネージドIDの設定、Runbookの作成、テスト、公開までの一連の手順を流れに沿って確認しています。
PowerShellを使って仮想マシン(Azure VM)を起動するRunbookを例に紹介しています。
Runbookでパラメーターを使用する方法についても記載しています。
Automationアカウントの概要、リソース作成手順、権限付与設定
Azure Automationアカウントとは
Azure Automationはクラウドやオンプレミス環境にわたる自動化タスクを実行するAzure上で提供されているサービスです。
Azure AutomationアカウントはAzure Automationサービスを利用するためのAzure上のリソースです。
Runbookを利用したプロセスの自動化や構成管理、更新管理などの機能が提供されています。
構成管理では、Desired State Configuration (DSC)を使用したWindowsサーバの構成管理や、変更管理などの機能が提供されています。
Azure上の仮想マシンだけではなく、非Azure上の仮想マシンやオンプレ上のサーバなども管理できます。
※Azure Automation Update Managementは廃止が予定されています。
Runbookとは
Azure Automationでプロセス自動化を機能として提供されています。
PowerShellやPythonなどを使用して自動化されたワークフローを記述します。
Azure Automation の Runbook の種類
Automationアカウントに、Runbookを作成して利用します。
1つのAutomationアカウントに対して、複数のRunbookを作成できます。
Runbookはスケジュール設定やWebhookを使って呼び出す事が出来ます。
Azure Monitorのアラート通知時にWebhookを使って呼び出す事で、障害時の対応処理の自動化と言った事にも活用できます。
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をAutomationアカウントのリソースに割り当てます
- 複数のAutomationアカウントに同じユーザー割り当てマネージドIDを共有して割り当てることができます
- システム割り当てマネージドID
システム割り当てマネージドID使ってリソースの操作権限を付与
Automationアカウントの作成時にシステム割り当てを選択した場合、リソース作成と同時にシステム割り当てマネージドIDが作成されます。
システム割り当てマネージドIDを使ってAutomationアカウントで仮想マシンの操作権限を付与します。
マネージドIDの設定はAutomationアカウントのアカウント設定のIDで行います。
システム割り当てマネージドIDはRunbookにではなく、Automationアカウントに対して割り当てます。
※PowerShellを利用して割り当てる方法もあります。マネージド ID にアクセス許可を割り当てるを参照ください。
※権限付与は必要最低限の権限で割り当てるようにします。
※仮想マシンの共同作成者の権限を割り当てます。
—広告—
仮想マシンを起動する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のワークフローからも、仮想マシンを起動停止できます。
設定手順についてはこちらで紹介しています。