初めてのAzure Automation(Runbook作って仮想マシンを起動してみた)
Azure AutomationアカウントはPowerShell等を利用して運用業務を自動化するサービスになります。
詳細はマイクロソフト公式サイトに記載の通りですが、Automationアカウントを利用する事でAzure仮想マシン等を準備する事なくPowerShellを実行すると言った事が出来ます。
Automationアカウントで実行処理内容を記載したのものをRunbookと言います。
RunbookではPowerShellやPython等を使う事が出来ます。
Runbookはスケジュール設定やAzure Monitorでアラート発生時にWebhookを使って呼び出す事が出来ます。
初めてのAzure AutomationでRunbookという想定で、仮想マシンの起動をサンプルにやってみました。
-
-
- Automationアカウントの作成
- マネージドIDの設定、権限割り当て
- 仮想マシンを起動するRunbookの作成確認
- パラメータ設定方法の確認
-
※AutomationアカウントではVM の開始/停止ソリューションが用意されていますが、今回は自分で作成する事を目的にしていますのでRunbookを自分で作成しています。
※2021年12月に記事を大幅に刷新しました。
Azure PortalでAutomationアカウントを作成、設定
Automationアカウントの作成からマネージドIDの権限付与までやってみます。
Automationアカウントを作成する
Azure Portalを使ってAutomationアカウントを作成します。マイクロソフト公式サイトを参考に進めます。
AutomationアカウントにおけるマネージドIDとは
マネージドIDにはシステム割り当てマネージド ID ユーザー割り当てマネージド IDの2種類があります。
Azure Automation アカウントの認証の概要(マネージドID)
Azure AutomationアカウントでRunbook実行する際に、操作するリソースに対して認証が行われます。その一つの方法としてマネージドIDを利用する方法があります。一言で言ってしまうとリソース操作権限を得るものになるかと思います。
Automationアカウントの認証にはマネージドIDの他に実行アカウントを利用する方法もあります。
※マネージドIDについてはMS Learnにも説明があります。混乱しがちなサービスプリンシパルとの違いと言った事の説明もあります。
マネージドIDを確認する
Automationアカウントの作成時にシステム割り当てを選択すると、自動でシステム割り当てマネージドIDが作成されます。
今回は作成されたマネージドIDを確認しロールの割り当てを行います。
※後からシステム割り当てマネージドIDを有効にする方法はマイクロソフト公式サイトに記載がございます。
マネージドIDへのロール割り当て | |
AutomationアカウントでIDを選択するとマネージドIDの設定が確認出来ます。 状態がオンになっており、システム割り当てマネージドIDが使える事が分かります。 Azureロールの割り当てを選択し、システム割り当てマネージドIDへの権限割り当てを行っていきます。 |
![]() |
ロール割り当ての追加を選択します。 | ![]() |
ロールの割り当てはスコープ、サブスクリプション、役割の選択を行います。 PowerShellを利用して割り当てる方法もあります。マイクロソフト公式サイトを参照ください。 |
![]() |
![]() |
|
今回システムマネージドID割り当てを行ったリソースグループでアクセス制御(IAM)を確認してみると仮想マシン共同作成者が割り当てされている事が分かります。 | ![]() |
※今回仮想マシン共同作成者を割り当ていますが、実際の利用にあたっては最低限の権限での割り当てを行うようにします。
Azure VM(仮想マシン)を起動するRunbookを作成
RunbookにはPowerShellだけではなくPython等いくつかの種類があります。
Azure Automation の Runbook の種類
今回は初めて使う事を前提にしているので基本となるPowerShellを選択しています。
Runbookのリソース作成する
最初にRunbookのリソースを作成します。
Runbookのリソース作成 | |
AutomationアカウントでRunbookの作成を選択します。 | ![]() |
Runbookの作成画面が表示されます。名前を入力し、Runbookの種類を選択します。 今回はRunbook名をVM-Startとしています。 Runbookの種類にはPowerShellの他に、Python、PowerShellワークフロー、グラフィカルPowerShell、グラフィカルPowerShellワークフローがあります。それぞれの説明についてはマイクロソフト公式サイトを参照ください。 |
![]() |
![]() |
Azur仮想マシンを起動するRunbookを作成する
仮想マシンを起動するRunbookをPowerShell使って作成します。
仮想マシンを起動するRunbook | ||
Runbookのリソースを作成すると編集画面が表示されます。処理を行う為のPowerShellを記載します。 |
![]() |
|
今回作成したRunbookはマネージドIDを利用した認証部分と実際に処理を規定する部分で構成されます。
|
||
Runbookに記載したPowerShellはこのようになります。
|
||
Runbookを作成したらテストウィンドウを使ってテストを行います。 ※テストウィンドウを選択すると自動保存されますが、保存は定期的に実施しましょう。 |
![]() |
|
テスト画面が表示されます。 ※テストとはありますが、チェックをするだけではなく実際に処理が実行されます。注意しましょう。 |
![]() |
|
テストが正常終了すると完了と表示されます。 Operation実行結果にもSucceededと表示されます。 |
![]() |
|
仮想マシンの状態が実行中になっている事が確認出来ます。 | ![]() |
Runbookでパラメータを使ってみた
先ほどのRunbookは仮想マシン名を固定にしていましたが、パラメータとして指定する事も可能です。
PowerShell Runbook の入力パラメーターを構成する
サイトを参考にしながら設定してみました。
仮想マシンを起動するRunbook(パラメータを使う) | ||
再度Runbookの編集画面を表示し、処理を行う為のPowerShellを記載します。 | ![]() |
|
パラメータ部分マネージドIDを利用した認証部分と実際に処理を規定する部分で構成されます。
|
||
Runbookに記載したPowerShellはこのようになります。
※複数パラメータがある場合は、,(カンマ)でパラメータ間を区切る必要があります。これ忘れるとエラーになります。 |
||
テスト画面が表示されます。 |
![]() |
|
テストが正常終了すると完了と表示されます。 Operation実行結果にもSucceededと表示されます。 |
![]() |
Runbookを実際に使う為には公開が必要
Runbookを保存するだけでは開始(実行)が出来ません。Runbookを利用する為には公開が必要になります。
Runbookを公開 | |
Runbookの編集画面に公開と言う項目がありますので選択します。 | ![]() |
Runbookの発行確認が表示されます。はいを選択します。 これでRunbookが利用可能になりました。 |
![]() |
Runbookで開始が選択できるようになっています。 | ![]() |
まとめ
今回はAutomationアカウントやRunbookを理解する為に1個づつ作成して仮想マシンを起動までやってみました。
実際にはギャラリーから作成済みのRunbookのインポートする事が出来たりしてもっとお手軽に利用する事が可能です。
Automationアカウントを使うと、非常に簡単に設定、利用できて自動化するのに便利な機能かと思いました。
マイクロソフト公式サイトでもチュートリアルが公開されていますのでこちらを試してみても良いかと思います。
チュートリアル: マネージド ID を使用して Automation PowerShell Runbook を作成する
Logic Apps+RunbookでのAzure VM(仮想マシン)起動についてはこちら。
Runbookの実行時間帯制限についてはこちら。
Logic Appsを利用した仮想マシンの起動停止はこちら。