Azure Automation の利用を始める – Runbook の管理


このポストは、6 月 19 日に投稿した Getting Started With Azure Automation – Runbook Management の翻訳です。

Azure の新しいサービスである Azure Automation は、Azure の管理タスクの自動化、および外部システムとのアクションの調整を Azure 内部で行うことを可能にします。このサービスは PowerShell ワークフローの上に構築されているので、この言語で提供される多数の機能を使用できます。プレビューは無料でご利用いただけますので、まだ Azure Automation にサインアップされていない方はこちらのページからご利用ください。Azure Automation の詳細については、こちらのページ (英語) をご覧ください。

この記事では、Azure Automation 内での Runbook 管理の基礎について説明します。具体的には、Automation アカウントを簡単に作成する方法、Runbook の作成またはインポート、Runbook のテストと発行、Runbook のログの管理、Runbook を開始するためのスケジュール設定について、手順を追って説明します。

Azure Automation を使用するには、まず Automation アカウントを作成する必要があります。Automation アカウントは Azure Storage アカウントのようなもので、サービス内でコンテナーとしての役割を担います。ユーザーのすべての Runbook、Runbook の実行 (ジョブ)、および Runbook が依存している資産を管理するコンテナーとなります。Automation の一般提供開始後は、Automation アカウントを使用するリージョンを選択できるようになる予定です。それにより、使用する他のサービスが存在するリージョンでアフィニティを作成して、効率を最大化することができるようになります。現時点では Automation はプレビュー期間ですので、使用可能なリージョンは米国東部のみです。

アカウントを作成するには、[AUTOMATION][CREATE] を選択します。

この後、アカウントの名前の追加、サブスクリプションの選択 (利用可能なサブスクリプションが複数存在する場合)、およびリージョンの選択を行います。

Automation の Runbook を作成する

Automation アカウントを作成したら、次は Runbook を作成してクラウドの管理を自動化します。Runbook を作成する方法には、次の 2 つがあります。

  1. 新しい Runbook を簡易作成する
  2. 既存の Runbook (.ps1 ファイルの PowerShell ワークフロー スクリプト) をインポートする

新しい Runbook を簡易作成する

空の Runbook を作成するには、簡易作成機能を使用します。それには、まず [+NEW]、[APP SERVICES]、[RUNBOOK]、[QUICK CREATE] の順に選択します。

Runbook の名前説明を入力し、Runbook を作成する Automation アカウントを選択します。ここで、Runbook の名前は、後から変更できないことに注意してください。ただし、Runbook の説明は [Configuration] タブから変更できます。通常は、PowerShell の動詞-名詞の命名規則に従い、PowerShell で承認されている動詞 (英語) のみを使用することが推奨されます。この例では、“Set-RunbookConfiguration” とします。

入力が完了した後 [CREATE] をクリックすると、Runbook が作成され、[RUNBOOKS] リストに表示されます。この [RUNBOOKS] ビューは、各種プロセスの自動化に使用可能な Runbook のユーザー個人のライブラリです。このビューでは、開始、インポート、エクスポート、削除などの Runbook に対する基本操作を実行できます。その一部については、この記事内で後述します。

作成された Runbook は、[RUNBOOKS] ビューで [New] としてリストに表示されます。作成された Runbook を選択し、次に [AUTHOR] を選択して Runbook のオーサリングを開始します。

これで、標準の PowerShell ワークフロー構文を使用して Runbook をオーサリングできるようになりました。ここで、PowerShell ワークフローは標準の PowerShell スクリプトと異なることに注意が必要です。PowerShell ワークフローの詳細については、こちらのページをご覧ください。Runbook の作成に関して不明な点がありましたら、フォーラムで同じ問題について議論されていないかどうかご確認ください。フォーラムでは新たに質問を投稿することもできます。

Runbook をインポートする

既に PowerShell ワークフロー (.PS1 ファイル) がある場合、または事前に作成または取得した Runbook がある場合は、簡単にそれを Runbook ライブラリにインポートできます。この手順を実行してみる場合は、Runbook をスクリプト センターからダウンロードすれば、それをシステムにインポートすることが可能です。その後で、その Runbook が不要になった場合は、削除して Runbook リストを整理することができます。

「インポート」機能は [RUNBOOKS] タブのコマンド バーから使用できます。

Runbook とジョブの並び替えとフィルタリング

これで、システム内に 1 つまたは 2 つの Runbook が存在する状態になりました。ここからは [RUNBOOKS] ビュー (上図) で実行可能なことについて説明します。このビューでは、開始されたジョブの詳細が表示されます。[NAME]、[LAST JOB START]、[LAST JOB STATUS]、[JOBS]、[AUTHORING]、[TAGS] の各項目によって並べ替えることも可能です。少し詳細を説明します。

  • NAME – Runbook 名のアルファベットの昇順または降順で並べ替え可能です。
  • LAST JOB START – MM/DD/YYYY HH:MM:SS AM|PM の形式で、Runbook で開始された最新のジョブの順で並べ替えが可能です。Runbook で 1 つもジョブが開始されていない場合は、この項目は [None] となります。
  • LAST JOB STATUS – 最後のジョブのステータスが表示されます。ジョブは、限定されたステータス ([Suspended]、[Completed]、[Failed]、[Queued]、[Running]、[Starting]) のいずれかになります。
  • JOBS – Runbook に関連付けられているジョブの数です。この数には、本番環境で実行されているジョブのみが含まれ、テスト実行中のジョブは含まれません。
  • AUTHORING– Runbook の定義の現在のステータスです。
    • New – 現在編集中の、本番用ではないバージョン (UI では [Draft] と表示) が存在することを示します。このジョブは、Runbook では “Test” モードでのみ実行できます。
    • Published – ジョブを開始可能な本番バージョン (UI では [Production] と表示) が存在し、同時に下書きバージョンが存在しないことを示します。このジョブは、Runbook では “Production” モードでのみ実行できます。
    • In edit – 本番バージョンと現在編集中の下書きバージョンの両方が存在することを示します。スケジュールが設定されている場合、およびユーザーが他の Runbook、UI、またはコマンドレットから Runbook を開始した場合、本番バージョンの Runbook が開始されます。下書きバージョンは、作成ウィンドウで “Test” モードでのみ開始できます。
    • TAGS – タグを使用すると、Runbook を分類して、必要な Runbook をすばやく見つけられるようにできます。たとえば、本番用であるかテスト用であるか、ワークロードごと、テクノロジごとなどに Runbook を分類するとよいでしょう。[PROD: Microsoft Azure, IaaS] または [TEST: Virtual Machines, Library] のようなタグ付けが可能です。これらのタグは自由形式なので、ユーザーはわかりやすいように付けることができます。
  • Filter – 右上の虫眼鏡アイコンを選択すると、[RUNBOOKS] ビューの [NAME] 列または [TAGS] 列でフィルタリングできます。
  • Range – 高度なフィルタリング メカニズムを使用して、X 時点から Y 時点までの、ジョブの特定のステータス (上述) を指定して絞り込めます。

新しい Runbook のオーサリング

それでは、簡単な Runbook を作成して、Runbook のオーサリング操作についてひととおり説明します。ここでは、問題がある場合に Runbook のジョブのトラブルシューティングに役立つストリーム出力タイプを数種類追加します。また、本番環境での Runbook のログ記録を有効または無効にする方法を紹介します。

前の手順で作成した Runbook “Set-RunbookConfiguration” を [RUNBOOKS] ビューから選択し、Runbook のオーサリングを開始します。[AUTHORING] タブをクリックして Runbook のコードを表示します。画面には、Azure Automation によって自動的に追加された “workflow <Runbook 名> { }” が表示されます。次のように、Runbook の定義を挿入します。

有効化または無効化できるストリームの例として、Verbose および Progress ストリームがあります。Verbose では詳細な情報が得られるため、本番用の Runbook のトラブルシューティングを行うときに役立ちます。Write-Output では常に出力されるため、Runbook の結果を常に確認することができます。

Runbook に手動で入力する以外にも、[INSERT] ボタンを使用して Azure Automation に読み込み済みの任意のモジュール、発行済みの他の Runbook、または変数や接続などの資産からアクティビティを挿入できます。資産の管理は [ASSETS] タブから行えます。また、Runbook オーサリング画面内の [MANAGE] ボタンから資産を作成できます。この資産は、Automation サービス全体で使用できます。資産については、今後より詳細な記事を投稿する予定です。

Runbook が完成したら、Runbook を保存、テスト、発行できます。“Test” 機能では、仮定のものではなく実際のワークフローが実行されますので、注意が必要です。

ここでは、Runbook の手順を進め、発行します。参照のみの [PUBLISHED] ビューを使用します。コマンド バーの [START] ボタンをクリックすると、Runbook を開始できます。この操作により、ジョブと呼ばれる Runbook のインスタンスが作成されます。後述のセクション「Runbook を構成する」の手順を実施せずに Runbook を開始すると、Verbose と Progress のストリームは、有効化されていないため確認できせん。先の手順に進んで [START] をクリックすると、結果を比較できます。

Runbook を構成する

Runbook の [CONFIGURE] タブを使用すると、Runbook を簡単に構成できます。

[CONFIGURE] タブでは、作成した Runbook 独自の設定を変更できます。たとえば、Runbook を管理しやすいように [DESCRIPTION] を変更したり [TAGS] を追加したりします。これは、ワークフロー全体を補完するために複数の小規模な Runbook を同時に動作させる場合に特に便利です。また、PowerShell ストリームのログ記録の管理もできます。

この例では、後でログを確認するために Verbose と Progress のストリームを使用しているので、[LOG VERBOSE RECORDS] および [LOG PROGRESS RECORDS] を変更します。これらのオプションを [YES] に設定すると、Runbook のすべてのログ レベルが有効になります。

これで構成設定の変更が完了しました。再度 Runbook を開始します。Start-AzureAutomationRunbook コマンドレットを使用すると、Runbook をプログラム的に開始できます。PowerShell コマンドレットの詳細については、こちらのページ (英語) を参照してください。Azure のサービスを管理するために、Azure の管理証明書を Automation の資産にインポートし、PowerShell の呼び出しをこれらのサービスで使用できるようにする必要があります。管理証明書をインポートする方法の詳細は、以前に公開したブログ記事「Microsoft Azure Automation プレビュー サービスで Azure サービスを管理する (英語)」を参照してください。

Runbook のジョブを調査する

ここまでの手順を実行すると、2 つのジョブが正常に完了しているかと思います。この Runbook のジョブがどのような状態だったかを確認するには、[JOBS] ビューで、(特定の時間帯に) 実行されたすべてのジョブを表示します。

ジョブをクリックすると、ジョブのダッシュボード ビューに移動します。ここでは、ジョブの概要、パラメーターの入力と出力を確認できます。ジョブをクリックして [HISTORY] タブを選択すると、以前に有効化したログの詳細を確認できます。今回の例の手順では、後ですべてのログ ストリームを有効化したので、2 つめのジョブでは Progress と Verbose の出力が表示され、1 つめのジョブでは Write-Output の出力のみが表示されます。Runbook のソース (ジョブが実行されたバージョン) は、[VIEW SOURCE] コマンドをクリックして表示できます。この場合、実際にジョブで使用された Runbook を確認できます。

ジョブ 1

ジョブ 2

Runbook のスケジュールを設定する

Azure Automation では、スケジュールを設定することもできます。作業に使用している Runbook で [SCHEDULE] ビューに移動して、[LINK TO A NEW SCHEDULE] を選択します。

スケジュールの名前と説明を入力します。

次に、[TYPE]、[START TIME]、[SET SCHEDULE EXPIRATION TIME]、[RECUR EVERY] の各項目についてスケジュールを設定します。

これでスケジュールが有効になり、ユーザーのローカル タイム ゾーンで実行されます (該当項目が変更されていない場合)。同時に複数の Runbook をスケジュール設定して実行する場合、このスケジュール設定を他の Runbook で再利用することもできます。スケジュールを表示またはリンク解除する場合は、Runbook で [SCHEDULE] ビューをクリックするか、[ASSETS] ビューに移動します。

まとめ

これで、Azure Automation サービスにアクセスし、作成、実行、ジョブ ストリームの構成、ジョブの表示などの Runbook の管理タスクを完了させるまでの手順をご理解いただけたかと思います。ぜひこの機能をご活用ください。

Comments (0)

Skip to main content