Aktifkan Manajemen Pembaruan menggunakan template Azure Resource Manager

Anda bisa menggunakan templat Azure Resource Manager untuk mengaktifkan fitur Azure Automation Update Management di grup sumber daya Anda. Artikel ini menyediakan templat sampel yang mengotomatiskan berikut ini:

  • Mengotomatiskan pembuatan ruang kerja Analitik Log Azure Monitor.
  • Mengotomatiskan pembuatan akun Azure Automation.
  • Tautkan akun Automation ke ruang kerja Analitik Log.
  • Tambahkan contoh runbook Automation ke akun.
  • Mengaktifkan fitur Manajemen Pembaruan.

Jika Anda sudah memiliki ruang kerja Analitik Log dan akun Automation yang disebarkan di wilayah yang didukung di langganan Anda, ruang kerja tersebut tidak ditautkan. Menggunakan templat ini berhasil membuat tautan dan menyebarkan Manajemen Pembaruan.

Catatan

Pembuatan akun Automation Run As tidak didukung saat Anda menggunakan templat ARM. Untuk membuat akun Run As secara manual dari portal atau dengan PowerShell, lihat Membuat akun Jalankan Sebagai.

Setelah menyelesaikan langkah-langkah ini, Anda perlu mengonfigurasi pengaturan diagnostik agar akun Automation Anda mengirim status pekerjaan runbook dan aliran pekerjaan ke ruang kerja Analitik Log yang ditautkan.

Versi API

Tabel berikut mencantumkan versi API untuk sumber daya yang digunakan dalam contoh ini.

Sumber daya Jenis Sumber Daya versi API
Workspace ruang kerja pratinjau-01-03-2020
Akun Automation Automation pratinjau-13-01-2020
Layanan Tertaut Ruang Kerja ruang kerja pratinjau-01-03-2020
Solusi solutions 2015-11-01-preview

Sebelum menggunakan templat

Template JSON dikonfigurasi untuk meminta Anda untuk:

  • Nama ruang kerja.
  • Wilayah tempat membuat ruang kerja.
  • Nama akun Automation.
  • Wilayah tempat membuat akun Automation.

Parameter berikut dalam templat diatur dengan nilai default untuk ruang kerja Analitik Log:

  • sku didefaultkan ke tingkat harga per GB yang dirilis dalam model harga April 2018.
  • dataRetention didefaultkan hingga 30 hari.

Peringatan

Jika Anda ingin membuat atau mengonfigurasi ruang kerja Analitik Log dalam langganan yang telah memilih model harga April 2018, satu-satunya tingkat harga Analitik Log yang valid adalah PerGB2018.

Template JSON menentukan nilai default untuk parameter lain yang kemungkinan akan digunakan sebagai konfigurasi standar di lingkungan Anda. Atau, Anda dapat menyimpannya di akun penyimpanan Azure untuk akses bersama di organisasi Anda. Untuk informasi selengkapnya tentang bekerja dengan templat, lihat Menyebarkan sumber daya dengan templat ARM dan Azure CLI.

Jika Anda baru menggunakan Azure Automation dan Azure Monitor, penting bagi Anda untuk memahami detail konfigurasi berikut. Detail tersebut dapat membantu Anda menghindari kesalahan saat mencoba membuat, mengonfigurasi, dan menggunakan ruang kerja Analitik Log yang ditautkan ke akun Automation baru Anda.

  • Tinjau detail tambahan untuk sepenuhnya memahami opsi konfigurasi ruang kerja, seperti mode kontrol akses, tingkat harga, penyimpanan, dan tingkat reservasi kapasitas.

  • Tinjau pemetaan ruang kerja untuk menentukan bidang yang didukung sebaris atau dalam file parameter. Hanya wilayah tertentu yang didukung untuk menautkan ruang kerja Analitik Log dan akun Automation di langganan Anda.

  • Jika Anda baru menggunakan log Azure Monitor dan belum menyebarkan ruang kerja, Anda harus meninjau panduan desain ruang kerja. Ini akan membantu Anda mempelajari tentang kontrol akses, dan memahami strategi implementasi desain yang kami rekomendasikan untuk organisasi Anda.

Menyebarkan templat

  1. Salin dan tempel sintaks JSON berikut ke dalam 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",
          "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"
          }
        }
      },
      "variables": {
        "Updates": {
            "name": "[concat('Updates', '(', parameters('workspaceName'), ')')]",
            "galleryName": "Updates"
          }
      },
      "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
            }
          }
        },
      {
        "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('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'))]"
          }
        }
      ]
    }
    
  2. Edit templat untuk memenuhi persyaratan Anda. Pertimbangkan untuk membuat file parameter Resource Manager alih-alih meneruskan parameter sebagai nilai sebaris.

  3. Simpan file ini ke folder lokal sebagai deployUMSolutiontemplate.json.

  4. Anda siap untuk menyebarkan templat ini. Anda dapat menggunakan PowerShell atau Azure CLI. Saat Anda diminta memberi nama ruang kerja dan akun Automation, berikan nama yang unik secara global di semua langganan Azure.

    PowerShell

    New-AzResourceGroupDeployment `
        -Name <deployment-name> `
        -ResourceGroupName <resource-group-name> `
        -TemplateFile deployUMSolutiontemplate.json `
        -_artifactsLocation "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json"
    

    Azure CLI

    az deployment group create --resource-group <my-resource-group> --name <my-deployment-name> --template-file deployUMSolutiontemplate.json --parameters _artifactsLocation="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json"
    

    Diperlukan beberapa menit untuk menyelesaikan penyebaran. Setelah selesai, Anda akan melihat pesan yang mirip dengan yang berikut yang menyertakan hasilnya:

    Example result when deployment is complete

Meninjau sumber daya yang disebarkan

  1. Masuk ke portal Azure.

  2. Di portal Microsoft Azure, buka akun Automation yang baru saja Anda buat.

  3. Dari panel kiri, pilih Runbook. Pada halaman Runbook, tercantum tiga runbook tutorial yang dibuat dengan akun Automation.

    Tutorial runbooks created with Automation account

  4. Dari panel kiri, pilih Ruang kerja tertaut. Pada halaman Ruang kerja tertaut, halaman tersebut menampilkan ruang kerja Analitik Log yang Anda tentukan sebelumnya telah ditautkan ke akun Automation Anda.

    Automation account linked to the Log Analytics workspace

  5. Dari panel kiri, pilih Manajemen pembaruan. Di halaman Manajemen pembaruan, ini memperlihatkan halaman penilaian tanpa informasi apa pun sebagai akibat dari hanya diaktifkan, dan mesin tidak dikonfigurasi untuk manajemen.

    Update Management feature assessment view

Membersihkan sumber daya

Saat Anda tidak lagi memerlukannya, hapus solusi Pembaruan di ruang kerja Analitik Log, lepas tautan akun Automation dari ruang kerja, lalu hapus akun Automation dan ruang kerja.

Langkah berikutnya