Azure

Runbookで管理タスクを自動化する。

1.はじめに

初めまして、Cloud Engineerの曽我です。
この記事ではAzure AutomationサービスのRunbookについて
書いていこうと思います。

Azure Automationとは….
クラウド及びオンプレ環境の管理タスクを自動化する事が出来るサービスです。
そのサービスの中にRunbookという機能があり、
自分で組んだPowerShell (またはPython)スクリプトを
スケジュールやWebhookをトリガーとして実行できます。

スクリプトを書くことが苦手な方でも、 ワークフローを使用することで
マウス操作でスクリプトを組む事が可能です。

以下、グラフィカルRunbook図


2.どういう時に使う?

前述したように、Azure Automationを利用する事で、
クラウド及びオンプレ環境の管理タスクを自動化する事が出来ます。

  # 管理タスクの例として…
  ・18:00 ~ 8:00は停止させるサーバがある。
  ・あるサーバのCPUが80%以上になったら再起動させないといけない。
  ・毎週PaaSリソースの環境設定を更新する。

このような作業を自動化させる事によってエンジニアの方の作業時間が
削減でき、運用コストがカットできます。

3.実際に使ってみる。

①Automationアカウントを作ろう。

実際にRunbookを作成します。
Runbookを作成する前にAutomationアカウントを準備します。
AutomationアカウントとはAzure Automationサービスを利用する為に必要となるリソースで、Runbook含め様々な管理プロセスを
自動化できるサービスが使えるようになります。

※ Runbookを使用するには実際にスクリプトを実行するID(Service Principal)を作成する必要があります。User Access 管理者または、サブスクリプションの所有者権限が必要になります。

下記Automation Account作成画面です。名前やResource Groupはなんでも良いですが
“Automation実行Accountの作成”を”はい”を指定しています。

Automation Accountが作成されると下記のような画面がPortal上で確認できます。

Automation Accountが作成すると自動でTutorial用Runbookが3つ作成されます。
使用しないようであれば削除して問題ありません。


②Runbookを作ろう。

次に実行されるスクリプトを作成する為のRunbookを作成します。
Automation Account -> Runbook -> [Runbookの作成]から選択可能です。

今回は検証環境上にある起動中の仮想マシンをあるスケジュールで電源Offするスクリプトを作成します。設定内容は画像の通りです。

続いて、Runbookにスクリプトを書いていきます。
下記のように書いてみました。

画面赤枠の”保存”をクリックし、スクリプトが保存されます。

③必要なModuleをImportしよう。

作成したRunbookが意図した通りに動くかを確認する必要があります。
例えば、必要なモジュールが無い状態で今回作成したRunbookを
“テスト ウィンドウ”から試験的に動かす(実影響無)と下記のErrorが出ます。

上記Errorはスクリプトを実行するのに必要なモジュールが無い事を教えてくれています。
下記手順でモジュールをImport出来ます。

・対象Automationアカウント -> モジュールギャラリー から
 必要なモジュールを検索
・モジュールをImport

モジュールをImportした後、再度テストしてみると…

※ 複数個所へフィルターをかけています。

問題無くスクリプトが動く事を確認出来ました!

・Runbookスクリプトを”公開”する。

下記画面の赤枠部分から作成したRunbookスクリプトを”公開”します。
ここでいう”公開”とは公に公開されるという意味ではなく、
実際にRunbookスクリプトを動かしたり、
スケジュールと関連付ける為に必要なステップとなります。

④実際に動かそう。

Runbookスクリプトが問題無く動く事を確認出来たので、
実際にスケジュールを組みます。(webhookをトリガーとして設定する事も
可能ですが今回は割愛します。)

対象Runbook -> スケジュール -> スケジュールの追加から、
スケジュールとの関連付け設定が出来ます。

以下の内容で新しいスケジュールを作成します。

続いて、Runbookスクリプト内に書かれているパラメータを指定します。
今回は必須パラメータである”subscriptionId”のみを指定します。


数時間後…

対象Runbook -> ジョブからScheduleしたRunbookスクリプトが問題無く完了している事を確認しました!(VMも意図した通り全て停止されておりました)

4. まとめ

Runbookだけではなく、Azure Automationでは、
更新Program管理なども利用できるので、使いこなすと管理・運用コストが今までより削減出来るのではと思います。
Azure Automationを最大限活用する為にもっとこのサービスを
使いこなせるように頑張ります!

以上、長々と読んで頂き有難うございました!

この記事を書いている人
プロフィール画像

そがひろ。

趣味はカラオケとカード手品とチーズバーガーです。

記事について・製品についてのお問い合わせは下記フォームよりお願いいたします。

関連記事

  1. Azure

    Azure VPNについてあれこれ

    こんにちは、三醍醐です。今回は、Azure VPNについてお…

  2. Azure

    WindowsVirtualDesktopがGAされているので(その2)

    その1で仮想マシンの展開まで行ったので次は接続、それとその他備考な…

  3. Azure

    Azure Site Recoveryの課金について

    少々わかりにくい、Azure Site Recovery の…

  4. Azure

    Azure Virtual Machineのリージョン間複製

    こんにちは。新人クラウドエンジニアの三醍醐です。今回は、管理…

  5. Azure

    Azure料金に関する豆知識①

    こんにちは。新人クラウドエンジニアの三醍醐です。今回は、Az…

  6. Appサービス

    Azure App Serviceを使ってみる

    1.はじめにこんにちは、Cloud Engineerの曽我で…

関連記事

ARCHIVES

  1. Azure

    Azure料金に関する豆知識①
  2. ID管理とセキュリティ

    Azure AD Connectで オンプレADをAzureADへ同期
  3. Azure

    ARMテンプレートでインフラ構築する。
  4. Azure

    Azure AD Connectの構築トラブルメモ
  5. Azure

    WindowsVirtualDesktopがGAされているので(その1)
PAGE TOP