Resource Manager テンプレートを使用して Azure Automation アカウントを作成する

Azure Automation は、Azure 環境と Azure 以外の環境にまたがる一貫した管理をサポートするクラウド ベースの自動化および構成サービスを提供します。 この記事では、Automation アカウントを作成する Azure Resource Manager テンプレート (ARM テンプレート) をデプロイする方法について説明します。 ARM テンプレートを使用すると、他のデプロイ方法より手順が減ります。 JSON テンプレートでは、環境で標準構成として使用される可能性のあるパラメーターの既定値を指定します。 このテンプレートは、組織内の共有アクセス用に Azure ストレージ アカウントに格納できます。 テンプレートの操作の詳細については、ARM テンプレートと Azure CLI を使用したリソースのデプロイに関するページを参照してください。

Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、宣言型の構文が使用されています。 デプロイしようとしているものを、デプロイを作成する一連のプログラミング コマンドを記述しなくても記述できます。

サンプル テンプレートを使用すると、次の手順が実行されます。

  • Azure Monitor Log Analytics ワークスペースの作成を自動化します。
  • Azure Automation アカウントの作成を自動化します。
  • Automation アカウントを Log Analytics ワークスペースにリンクします。
  • サンプルの Automation Runbook をアカウントに追加します。

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

前提条件

Azure Automation と Azure Monitor を初めて使用する場合は、構成の詳細を理解しておくことが重要です。 理解することで、新しい Automation アカウントにリンクされた Log Analytics ワークスペースを作成、構成、および使用するときに、エラーを回避するのに役立ちます。

  • 追加の詳細を確認し、アクセス制御モード、価格レベル、保有期間、容量予約レベルなどのワークスペースの構成オプションについて十分に理解します。

  • ワークスペース マッピングを確認し、サポートされているリージョンを、インラインまたはパラメーター ファイルで指定します。 サブスクリプション内で Log Analytics ワークスペースと Automation アカウントをリンクすることは、特定のリージョンでのみサポートされています。

  • Azure Monitor ログを初めて使用し、ワークスペースをまだデプロイしていない場合は、ワークスペースの設計ガイダンスを確認してください。 このドキュメントは、アクセス制御について学習し、組織に推奨される設計実装戦略を理解するのに役立ちます。

テンプレートを確認する

この記事で使用されているテンプレートは Azure クイックスタート テンプレートからのものです。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workspaceName": {
      "type": "string",
      "metadata": {
        "description": "Workspace name"
      }
    },
    "sku": {
      "type": "string",
      "defaultValue": "pergb2018",
      "allowedValues": [
        "pergb2018",
        "Free",
        "Standalone",
        "PerNode",
        "Standard",
        "Premium"
      ],
      "metadata": {
        "description": "Pricing tier: perGB2018 or legacy tiers (Free, Standalone, PerNode, Standard or Premium), which are not available to all customers."
      }
    },
    "dataRetention": {
      "type": "int",
      "defaultValue": 30,
      "minValue": 7,
      "maxValue": 730,
      "metadata": {
        "description": "Number of days to retain data."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specifies the location in which to create the workspace."
      }
    },
    "automationAccountName": {
      "type": "string",
      "metadata": {
        "description": "Automation account name"
      }
    },
    "sampleGraphicalRunbookName": {
      "type": "String",
      "defaultValue": "AzureAutomationTutorial"
    },
    "sampleGraphicalRunbookDescription": {
      "type": "String",
      "defaultValue": "An example runbook that gets all the Resource Manager resources by using the Run As account (service principal)."
    },
    "samplePowerShellRunbookName": {
      "type": "String",
      "defaultValue": "AzureAutomationTutorialScript"
    },
    "samplePowerShellRunbookDescription": {
      "type": "String",
      "defaultValue": "An example runbook that gets all the Resource Manager resources by using the Run As account (service principal)."
    },
    "samplePython2RunbookName": {
      "type": "String",
      "defaultValue": "AzureAutomationTutorialPython2"
    },
    "samplePython2RunbookDescription": {
      "type": "String",
      "defaultValue": "An example runbook that gets all the Resource Manager resources by using the Run As account (service principal)."
    },
    "_artifactsLocation": {
      "type": "string",
      "defaultValue": "[deployment().properties.templateLink.uri]",
      "metadata": {
        "description": "URI to artifacts location"
      }
    },
    "_artifactsLocationSasToken": {
      "type": "securestring",
      "defaultValue": "",
      "metadata": {
        "description": "The sasToken required to access _artifactsLocation.  When the template is deployed using the accompanying scripts, a sasToken will be automatically generated"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.OperationalInsights/workspaces",
      "apiVersion": "2020-08-01",
      "name": "[parameters('workspaceName')]",
      "location": "[parameters('location')]",
      "properties": {
        "sku": {
          "name": "[parameters('sku')]"
        },
        "retentionInDays": "[parameters('dataRetention')]",
        "features": {
          "searchVersion": 1,
          "legacy": 0
        }
      }
    },
    {
      "type": "Microsoft.Automation/automationAccounts",
      "apiVersion": "2020-01-13-preview",
      "name": "[parameters('automationAccountName')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[parameters('workspaceName')]"
      ],
      "identity": {
        "type": "SystemAssigned"
      },
      "properties": {
        "sku": {
          "name": "Basic"
        }
      },
      "resources": [
        {
          "type": "runbooks",
          "apiVersion": "2020-01-13-preview",
          "name": "[parameters('sampleGraphicalRunbookName')]",
          "location": "[parameters('location')]",
          "dependsOn": [
            "[parameters('automationAccountName')]"
          ],
          "properties": {
            "runbookType": "GraphPowerShell",
            "logProgress": "false",
            "logVerbose": "false",
            "description": "[parameters('sampleGraphicalRunbookDescription')]",
            "publishContentLink": {
              "uri": "[uri(parameters('_artifactsLocation'), concat('scripts/AzureAutomationTutorial.graphrunbook', parameters('_artifactsLocationSasToken')))]",
              "version": "1.0.0.0"
            }
          }
        },
        {
          "type": "runbooks",
          "apiVersion": "2020-01-13-preview",
          "name": "[parameters('samplePowerShellRunbookName')]",
          "location": "[parameters('location')]",
          "dependsOn": [
            "[parameters('automationAccountName')]"
          ],
          "properties": {
            "runbookType": "PowerShell",
            "logProgress": "false",
            "logVerbose": "false",
            "description": "[parameters('samplePowerShellRunbookDescription')]",
            "publishContentLink": {
              "uri": "[uri(parameters('_artifactsLocation'), concat('scripts/AzureAutomationTutorial.ps1', parameters('_artifactsLocationSasToken')))]",
              "version": "1.0.0.0"
            }
          }
        },
        {
          "type": "runbooks",
          "apiVersion": "2020-01-13-preview",
          "name": "[parameters('samplePython2RunbookName')]",
          "location": "[parameters('location')]",
          "dependsOn": [
            "[parameters('automationAccountName')]"
          ],
          "properties": {
            "runbookType": "Python2",
            "logProgress": "false",
            "logVerbose": "false",
            "description": "[parameters('samplePython2RunbookDescription')]",
            "publishContentLink": {
              "uri": "[uri(parameters('_artifactsLocation'), concat('scripts/AzureAutomationTutorialPython2.py', parameters('_artifactsLocationSasToken')))]",
              "version": "1.0.0.0"
            }
          }
        }
      ]
    },
    {
      "type": "Microsoft.OperationalInsights/workspaces/linkedServices",
      "apiVersion": "2020-08-01",
      "name": "[concat(parameters('workspaceName'), '/' , 'Automation')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[parameters('workspaceName')]",
        "[parameters('automationAccountName')]"
      ],
      "properties": {
        "resourceId": "[resourceId('Microsoft.Automation/automationAccounts', parameters('automationAccountName'))]"
      }
    }
  ]
}

テンプレート内に定義されている Azure リソース:

テンプレートのデプロイ

  1. 下の [Azure に配置する] ボタンを選択して Azure にサインインし、ARM テンプレートを開きます。

    Button to deploy the Resource Manager template to Azure.

  2. 次の値を入力または選択します。

    プロパティ 説明
    サブスクリプション ドロップダウン リストから Azure サブスクリプションを選択します。
    Resource group ドロップダウン リストから既存のリソース グループを選択するか、 [新規作成] を選択します。
    リージョン この値は自動的に設定されます。
    ワークスペース名 新しい Log Analytics ワークスペースの名前を入力します。
    Sku 既定値は、2018 年 4 月の価格モデルでリリースされた 1 GB あたりの価格レベルです。 2018 年 4 月の価格モデルを選択したサブスクリプションで Log Analytics ワークスペースを作成または構成する場合、有効な Log Analytics 価格レベルは PerGB2018 のみです。
    データの保持 既定値は 30 日です。
    場所 この値には、リソース グループに使用される場所が自動入力されます。
    Automation アカウント名 新しい Automation アカウントの名前を入力します。
    サンプルのグラフィカル Runbook 名 現状のままにします。
    サンプルのグラフィカル Runbook の説明 現状のままにします。
    サンプルの PowerShell Runbook 名 現状のままにします。
    サンプルの PowerShell Runbook の説明 現状のままにします。
    サンプルの Python2Runbook 名 現状のままにします。
    サンプルの Python2Runbook の説明 現状のままにします。
    _artifacts の場所 そのままにしてください。* 成果物の場所の URI。
    Sas トークンとしての _artifacts の場所 空白のままにします。 _artifactsLocation にアクセスするために必要な sasToken。 付属のスクリプトを使用してテンプレートをデプロイする場合は、sasToken が自動的に生成されます。

    * PowerShell、CLI から ARM テンプレート、またはテンプレート機能をポータルで実行しようとすると、_artifactsLocation パラメーターが正しく設定されていない場合は、次のようなエラー メッセージが表示されます。

    "message": "Deployment template validation failed: 'The template resource '_artifactsLocation' at line '96' and column '31' is not valid: The language expression property 'templateLink' doesn't exist, available properties are 'template, templateHash, parameters, mode, debugSetting, provisioningState'.. Please see https://aka.ms/arm-template-expressions for usage details.'."

    このエラーを防ぐには、ポータルのテンプレート機能から実行するときに、_artifactsLocation パラメーターに https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json の値を指定します。

    PowerShell から実行するときは、このパラメーターとその値 -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json を含めます。

    Azure CLI から実行するときは、このパラメーターとその値 --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json を含めます。

    PowerShell または CLI の詳細については、「テンプレートを使用する」セクションの「Azure Automation アカウントを作成する (microsoft.com)」を参照してください。

  3. [確認および作成][作成] の順に選択します。 デプロイが完了するまでに数分かかる場合があります。 完了すると、次の画像のように出力されます。

    Example result when deployment is complete

デプロイされているリソースを確認する

  1. デプロイが完了すると、[リソースに移動] リンクを含むデプロイ成功通知を受け取ります。 [リソース グループ] ページに新しいリソースが一覧表示されます。 一覧から、新しい Automation アカウントを選択します。

  2. 左側の [プロセス オートメーション][Runbook] を選択します。 [Runbook] ページには、Automation アカウントを使用して作成された 3 つのサンプル Runbook が一覧表示されます。

    Tutorial runbooks created with Automation account

  3. 左側の [関連リソース] から [Linked workspace]\(リンクされたワークスペース\) を選択します。 [Linked workspace]\(リンクされたワークスペース\) ページに、先ほど指定した対象の Automation アカウントにリンクされている Log Analytics ワークスペースが表示されます。

    Automation account linked to the Log Analytics workspace

次のステップ

Runbook ジョブの状態とジョブ ストリームを、リンクされた Log Analytics ワークスペースに送信するために、Automation アカウントの診断設定を構成します