Azure Automation での VS Code を使用した Runbook の作成

この記事では、Runbook の作成と管理に使用できる Visual Studio の拡張機能について説明します。

Azure Automation には、Runbook を作成および管理するための VS Code の新しい拡張機能が用意されています。 この拡張機能を使用すると、Runbook の作成と編集、ジョブのトリガー、最近のジョブ出力の追跡、スケジュールのリンク、アセット管理、ローカル デバッグなど、すべての Runbook 管理操作を実行できます。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます
  • Visual Studio Code
  • Runbook をローカルで実行するには、Runbook で使用される PowerShell モジュールと Python パッケージをコンピューターにローカルにインストールする必要があります。

サポートされるオペレーティング システム

テスト マトリックスには、次のオペレーティング システムが含まれています。

  1. Windows PowerShell 5.1 および PowerShell Core 7.2.7 がインストールされた Windows Server 2022
  2. Windows PowerShell 5.1 および PowerShell Core 7.2.7 がインストールされた Windows Server 2019
  3. PowerShell Core 7.2.7 がインストールされた macOS 11
  4. PowerShell Core 7.2.7 がインストールされた Ubuntu 20.04

Note

  • この拡張機能は VS Code 内のどこでも動作し、PowerShell 7.2 以降をサポートしています。 Windows PowerShell については、バージョン 5.1 のみがサポートされます。
  • PowerShell Core 6 は有効期間が終了しており、サポートされていません。

主な機能

  • 簡単なオンボード – Azure アカウントを使用して簡単かつ安全にサインインできます。
  • 複数の言語 - PowerShell 5、PowerShell 7、Python 2、Python 3 の Runbook など、すべての Automation ランタイム スタックをサポートします。
  • サポート性- ジョブのテスト実行、Automation ジョブの発行、Azure およびハイブリッド worker でのジョブのトリガーをサポートします。 Runbook はローカルで実行できます。
  • ジョブをトリガーするための Python 位置指定パラメーターと PowerShell パラメーターをサポートします。
  • Webhook の簡略化 – Webhook を作成し、Webhook を使用して簡単にジョブを開始できます。 また、Runbook へのスケジュールのリンクもサポートします。
  • Automation アセットの管理 – 証明書、変数、資格情報、接続などのアセットに対して作成、更新、削除操作を実行できます。
  • プロパティの表示 – プロパティを表示し、ハイブリッド worker グループを選択してハイブリッド ジョブを実行し、直近に実行された 10 個のジョブを表示できます。
  • ローカルでデバッグ - PowerShell スクリプトをローカルでデバッグできます。
  • Runbook の比較 - ローカル Runbook を発行済みまたはドラフトの Runbook コピーと比較できます。

v1.0.8 の主な機能

  • ローカル ディレクトリ構成設定 - Runbook をローカルに保存する作業ディレクトリを定義できます。

    • ディレクトリ:基本パスの変更 - Visual Studio Code IDE をもう一度開くときに、変更されたディレクトリ パスを使用します。 コマンド パレットを使用してディレクトリを変更するには、Ctrl + Shift + P の使用 -> [Change Directory] (ディレクトリの変更) の選択の順に行います。 拡張機能の構成設定から基本パスを変更するには、左側のアクティビティ バーで [管理] アイコンを選択し、[設定] > [拡張機能] >[Azure Automation] > [Directory:Base Path] (ディレクトリ:基本パス) の順に移動します。
    • ディレクトリ:フォルダー構造の変更 - ローカル ディレクトリ フォルダー構造を vscodeAutomation/accHash から subscription/resourceGroup/automationAccount に変更できます。 左側のアクティビティ バーで [管理] アイコンを選択し、[設定] > [拡張機能] >[Azure Automation] > [Directory:Folder Structure] (ディレクトリ:フォルダー構造) の順に移動します。 既定の構成設定を vscodeAutomation/accHash から subscription/resourceGroupe/automationAccount 形式に変更できます。

      Note

      Automation アカウントがソース管理と統合されている場合は、GitHub リポジトリの Runbook フォルダー パスをディレクトリ パスとして指定できます。 たとえば、ディレクトリを C:\abc に変更すると、Runbook が C:\abc\vscodeAutomation.. または C:\abc//subscriptionName//resourceGroupName//automationAccountName//runbookname.ps1 に保存されます。

  • Runbook 管理操作 - Runbook の作成、ドラフト Runbook の取り込み、発行済み Runbook の取り込み、エディターでのローカル Runbook のオープン、発行済みまたはドラフトの Runbook コピーとのローカル Runbook の比較、ドラフトとしてのアップロード、Runbook の発行、Automation アカウントからの Runbook の削除を行うことができます。

  • Runbook の実行操作 - たとえば、Automation ジョブを開始する、Automation テスト ジョブを開始する、ジョブ出力を表示する、スクリプトにブレークポイントを追加できるようにしてデバッグ モードで PowerShell Runbook のローカル バージョンを実行するなどの、Automation ジョブのローカル バージョンを実行できます。

    Note

    現時点では、Get-AutomationVariable などの内部コマンドレットの使用は、暗号化されていないアセットでのみサポートされています。

  • スケジュール、アセット、Webhook の操作 - スケジュールのプロパティの表示、スケジュールの削除、スケジュールを Runbook にリンクするためのスケジュールのリンクを行うことができます。

  • Webhook の追加 - Webhook を Runbook に追加できます。

  • アセットのプロパティの更新 - アセット (証明書、接続、資格情報、変数など) のプロパティの作成、更新、表示、および拡張機能からのアセットの削除を行うことができます。

制限事項

現時点では、次の機能はサポートされていません。

  • 新しいスケジュールの作成。
  • アセットへの新しい証明書の追加。
  • 拡張機能からのモジュール (PowerShell および Python) パッケージのアップロード。
  • Azure Automation アカウントへのローカル Runbook の自動同期。 Runbook の取り込みまたは発行のための操作を実行する必要があります。
  • ハイブリッド worker グループの管理。
  • グラフィカル Runbook とワークフロー。
  • Python の場合、デバッグ オプションは提供されません。 Python スクリプトにデバッガー拡張機能をインストールすることをお勧めします。
  • 現時点では、暗号化されていないアセットのみがローカルの実行でサポートされます。

次のステップ