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を最大限活用する為にもっとこのサービスを
使いこなせるように頑張ります!

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

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

そがひろ。

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

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

Azure Key Vaultでみんなしあわせ(その2)前のページ

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

関連記事

  1. Azure

    Azureで作るカスタムDNSの記事

    皆様こんにちは。セーターやニットは洗うのがめんどくさくてあま…

  2. Azure

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

    GAされてもう2か月たってますが…WindowsVirt…

  3. Azure

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

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

  4. Azure

    Azure Site Recoveryの課金について

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

  5. Azure

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

    その2からかなり時間が空いていますが今回はオートスケールについてと…

  6. Azure

    Azure料金に関する豆知識①

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

関連記事

  1. Application Gateway

    L7 負荷分散 Azure Application Gateway について:2…
  2. 未分類

    「Azure Functions」をC#で触ってみました。#3
  3. Azure

    Managed InstanceへのDB移行・アプリとの連携時の注意Point
  4. Appサービス

    AppService周りをまとめてみる(Windows版)
  5. Azure

    Azure Bastion の紹介
PAGE TOP