Azure Resource Manager テンプレートを使用して Update Management を有効にするEnable Update Management using Azure Resource Manager template

Azure Resource Manager テンプレートを使用して、リソース グループ内の Azure Automation Update Management 機能を有効にすることができます。You can use an Azure Resource Manager template to enable the Azure Automation Update Management feature in your resource group. この記事では、以下のことを自動化するサンプル テンプレートについて説明します。This article provides a sample template that automates the following:

  • Azure Monitor Log Analytics ワークスペースの作成を自動化します。Automates the creation of an Azure Monitor Log Analytics workspace.
  • Azure Automation アカウントの作成を自動化します。Automates the creation of an Azure Automation account.
  • Automation アカウントを Log Analytics ワークスペースにリンクします。Links the Automation account to the Log Analytics workspace.
  • サンプルの Automation Runbook をアカウントに追加します。Adds sample Automation runbooks to the account.
  • Update Management 機能を有効にします。Enables the Update Management feature.

このテンプレートでは、1 つ以上の Azure VM または Azure 以外の VM で、Update Management の有効化は自動化されません。The template does not automate enabling Update Management on one or more Azure or non-Azure VMs.

サブスクリプションでサポートされているリージョンに Log Analytics ワークスペースと Automation アカウントが既にデプロイされている場合、これらはリンクされていません。If you already have a Log Analytics workspace and Automation account deployed in a supported region in your subscription, they are not linked. このテンプレートを使用すると、リンクが正常に作成され、Update Management がデプロイされます。Using this template successfully creates the link and deploys Update Management.

注意

ARM テンプレートを使用する場合、Automation の実行アカウントの作成はサポートされません。Creation of the Automation Run As account is not supported when you're using an ARM template. ポータルからまたは PowerShell を使用して実行アカウントを手動で作成するには、実行アカウントの作成に関するページを参照してください。To create a Run As account manually from the portal or with PowerShell, see Create Run As account.

これらの手順を完了したら、Runbook ジョブの状態とジョブ ストリームを、リンクされた Log Analytics ワークスペースに送信するために、Automation アカウントの診断設定を構成する必要があります。After you complete these steps, you need to configure diagnostic settings for your Automation account to send runbook job status and job streams to the linked Log Analytics workspace.

API のバージョンAPI versions

次の表は、この例で使用されているリソースの API バージョンの一覧です。The following table lists the API version for the resources used in this example.

リソースResource リソースの種類Resource type API バージョンAPI version
ワークスペースWorkspace workspacesworkspaces 2020-03-01-preview2020-03-01-preview
Automation アカウントAutomation account automationautomation 2020-01-13-preview2020-01-13-preview
ワークスペースのリンクされたサービスWorkspace Linked services workspacesworkspaces 2020-03-01-preview2020-03-01-preview
ソリューションSolutions solutionssolutions 2015-11-01-preview2015-11-01-preview

テンプレートを使用する前にBefore using the template

JSON テンプレートは、次のことを求めるように構成されています。The JSON template is configured to prompt you for:

  • ワークスペースの名前。The name of the workspace.
  • ワークスペースを作成するリージョン。The region to create the workspace in.
  • Automation アカウントの名前。The name of the Automation account.
  • Automation アカウントを作成するリージョン。The region to create the Automation account in.

テンプレートの次のパラメーターには、Log Analytics ワークスペースの既定値が設定されます。The following parameters in the template are set with a default value for the Log Analytics workspace:

  • sku の既定値は、2018 年 4 月の価格モデルでリリースされた 1 GB あたりの価格レベルです。sku defaults to the per GB pricing tier released in the April 2018 pricing model.
  • dataRetention の既定値は 30 日です。dataRetention defaults to 30 days.

警告

2018 年 4 月の価格モデルを選択したサブスクリプションで Log Analytics ワークスペースを作成または構成する場合、有効な Log Analytics 価格レベルは PerGB2018 のみです。If you want to create or configure a Log Analytics workspace in a subscription that has opted into the April 2018 pricing model, the only valid Log Analytics pricing tier is PerGB2018.

JSON テンプレートでは、環境で標準構成として使用される可能性のある他のパラメーターの既定値を指定します。The JSON template specifies a default value for the other parameters that would likely be used as a standard configuration in your environment. このテンプレートは、組織内の共有アクセス用に Azure ストレージ アカウントに格納できます。You can store the template in an Azure storage account for shared access in your organization. テンプレートの操作の詳細については、ARM テンプレートと Azure CLI を使用したリソースのデプロイに関するページを参照してください。For more information about working with templates, see Deploy resources with ARM templates and the Azure CLI.

Azure Automation と Azure Monitor を初めて使用する場合は、次の構成の詳細を理解しておくことが重要です。If you're new to Azure Automation and Azure Monitor, it's important that you understand the following configuration details. これは、新しい Automation アカウントにリンクされた Log Analytics ワークスペースを作成、構成、および使用するときに、エラーを回避するのに役立ちます。They can help you avoid errors when you try to create, configure, and use a Log Analytics workspace linked to your new Automation account.

  • 追加の詳細を確認し、アクセス制御モード、価格レベル、保有期間、容量予約レベルなどのワークスペースの構成オプションについて十分に理解します。Review additional details to fully understand workspace configuration options, such as access control mode, pricing tier, retention, and capacity reservation level.

  • ワークスペース マッピングを確認し、サポートされているリージョンを、インラインまたはパラメーター ファイルで指定します。Review workspace mappings to specify the supported regions inline or in a parameter file. サブスクリプション内で Log Analytics ワークスペースと Automation アカウントをリンクすることは、特定のリージョンでのみサポートされています。Only certain regions are supported for linking a Log Analytics workspace and an Automation account in your subscription.

  • Azure Monitor ログを初めて使用し、ワークスペースをまだデプロイしていない場合は、ワークスペースの設計ガイダンスを確認してください。If you're new to Azure Monitor logs and have not deployed a workspace already, you should review the workspace design guidance. これは、アクセスの制御について学習し、組織に推奨される設計の実装戦略を理解するのに役立ちます。It will help you to learn about access control, and understand the design implementation strategies we recommend for your organization.

テンプレートのデプロイDeploy template

  1. 以下の JSON 構文をコピーして、ファイルに貼り付けます。Copy and paste the following JSON syntax into your file:

    {
        "$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",
                "allowedValues": [
                    "pergb2018",
                    "Free",
                    "Standalone",
                    "PerNode",
                    "Standard",
                    "Premium"
                ],
                "defaultValue": "pergb2018",
                "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"
                }
            },
            "automationAccountLocation": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the location in which to create the Automation account."
                }
            },
            "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": "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-automation/",
                "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"
                }
            }
        },
        "variables": {
        "Updates": {
            "name": "[concat('Updates', '(', parameters('workspaceName'), ')')]",
            "galleryName": "Updates"
          }
        },
        "resources": [
            {
                "type": "Microsoft.OperationalInsights/workspaces",
                "apiVersion": "2020-03-01-preview",
                "name": "[parameters('workspaceName')]",
                "location": "[parameters('location')]",
                "properties": {
                    "sku": {
                        "name": "[parameters('sku')]"
                    },
                    "retentionInDays": "[parameters('dataRetention')]",
                    "features": {
                        "searchVersion": 1,
                        "legacy": 0
                    }
                }
            },
            {
                "apiVersion": "2015-11-01-preview",
                "location": "[parameters('location')]",
                "name": "[variables('Updates').name]",
                "type": "Microsoft.OperationsManagement/solutions",
                "id": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.OperationsManagement/solutions/', variables('Updates').name)]",
                "dependsOn": [
                    "[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
                ],
                "properties": {
                    "workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
                },
                "plan": {
                    "name": "[variables('Updates').name]",
                    "publisher": "Microsoft",
                    "promotionCode": "",
                    "product": "[concat('OMSGallery/', variables('Updates').galleryName)]"
                }
            },
            {
                "type": "Microsoft.Automation/automationAccounts",
                "apiVersion": "2020-01-13-preview",
                "name": "[parameters('automationAccountName')]",
                "location": "[parameters('automationAccountLocation')]",
                "dependsOn": [
                    "[parameters('workspaceName')]"
                ],
                "properties": {
                    "sku": {
                        "name": "Basic"
                    }
                },
                "resources": [
                    {
                        "type": "runbooks",
                        "apiVersion": "2018-06-30",
                        "name": "[parameters('sampleGraphicalRunbookName')]",
                        "location": "[parameters('automationAccountLocation')]",
                        "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": "2018-06-30",
                        "name": "[parameters('samplePowerShellRunbookName')]",
                        "location": "[parameters('automationAccountLocation')]",
                        "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": "2018-06-30",
                        "name": "[parameters('samplePython2RunbookName')]",
                        "location": "[parameters('automationAccountLocation')]",
                        "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-03-01-preview",
                "name": "[concat(parameters('workspaceName'), '/' , 'Automation')]",
                "location": "[parameters('location')]",
                "dependsOn": [
                    "[parameters('workspaceName')]",
                    "[parameters('automationAccountName')]"
                ],
                "properties": {
                    "resourceId": "[resourceId('Microsoft.Automation/automationAccounts', parameters('automationAccountName'))]"
                }
            }
        ]
    }
    
  2. 要件に合わせてテンプレートを編集します。Edit the template to meet your requirements. パラメーターをインライン値として渡す代わりに、Resource Manager パラメーター ファイルを作成することを検討してください。Consider creating a Resource Manager parameters file instead of passing parameters as inline values.

  3. このファイルを deployUMSolutiontemplate.json としてローカル フォルダーに保存します。Save this file to a local folder as deployUMSolutiontemplate.json.

  4. これでこのテンプレートをデプロイする準備が整いました。You are ready to deploy this template. PowerShell または Azure CLI を使用できます。You can use either PowerShell or the Azure CLI. ワークスペースと Automation アカウント名の入力を求められたら、すべての Azure サブスクリプションでグローバルに一意の名前を指定します。When you're prompted for a workspace and Automation account name, provide a name that is globally unique across all Azure subscriptions.

    PowerShellPowerShell

    New-AzResourceGroupDeployment -Name <deployment-name> -ResourceGroupName <resource-group-name> -TemplateFile deployUMSolutiontemplate.json
    

    Azure CLIAzure CLI

    az deployment group create --resource-group <my-resource-group> --name <my-deployment-name> --template-file deployUMSolutiontemplate.json
    

    デプロイが完了するまでに数分かかる場合があります。The deployment can take a few minutes to complete. 完了すると、次のような結果を含むメッセージが表示されます。When it finishes, you see a message similar to the following that includes the result:

    デプロイ完了時の結果の例

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

  1. Azure portal にサインインします。Sign in to the Azure portal.

  2. Azure portal で、作成した Automation アカウントを開きます。In the Azure portal, open the Automation account you created.

  3. 左側のペインから、 [Runbook] を選択します。From the left-pane, select Runbooks. [Runbook] ページに、Automation アカウントで作成された 3 つのチュートリアル Runbook が表示されています。On the Runbooks page, listed are three tutorial runbooks created with the Automation account.

    Automation アカウントで作成されたチュートリアル Runbook

  4. 左側のペインから、 [リンクされたワークスペース] を選択します。From the left-pane, select Linked workspace. [リンクされたワークスペース] ページに、先ほど指定した対象の Automation アカウントにリンクされている Log Analytics ワークスペースが表示されます。On the Linked workspace page, it shows the Log Analytics workspace you specified earlier linked to your Automation account.

    Log Analytics ワークスペースにリンクされた Automation アカウント

  5. 左側のウィンドウから、 [更新の管理] を選択します。From the left-pane, select Update management. 有効にしたばかりのため、 [更新の管理] ページには情報が何もない評価ページが表示され、マシンは管理用に構成されていません。On the Update management page, it shows the assessment page without any information as a result of just being enabled, and machines aren't configured for management.

    Update Management 機能の評価ビュー

リソースをクリーンアップするClean up resources

必要がなくなったら、Log Analytics ワークスペースから 更新 ソリューションを削除し、ワークスペースから Automation アカウントのリンクを解除し、Automation アカウントとワークスペースを削除します。When you no longer need them, delete the Updates solution in the Log Analytics workspace, unlink the Automation account from the workspace, and then delete the Automation account and workspace.

次のステップNext steps