Partilhar via


Ativar a Gestão de Atualizações com o modelo do Azure Resource Manager

Você pode usar um modelo do Azure Resource Manager para habilitar o recurso Azure Automation Update Management em seu grupo de recursos. Este artigo fornece um modelo de exemplo que automatiza o seguinte:

  • Automatiza a criação de uma área de trabalho do Log Analytics do Azure Monitor.
  • Automatiza a criação de uma conta de Automatização do Azure.
  • Associa a conta de Automatização à área de trabalho do Log Analytics.
  • Adiciona runbooks de Automatização de exemplo à conta.
  • Habilita o recurso Gerenciamento de Atualizações.

Se você já tiver um espaço de trabalho do Log Analytics e uma conta de automação implantados em uma região com suporte em sua assinatura, eles não estarão vinculados. O uso desse modelo cria o link com êxito e implanta o Gerenciamento de Atualizações.

Nota

A criação da conta Run As de automação não é suportada quando você está usando um modelo ARM. Para criar uma conta Run As manualmente a partir do portal ou com o PowerShell, consulte Criar conta Run As.

Depois de concluir essas etapas, você precisa definir as configurações de diagnóstico para sua conta de automação para enviar o status do trabalho runbook e fluxos de trabalho para o espaço de trabalho vinculado do Log Analytics.

Versões da API

A tabela a seguir lista a versão da API para os recursos usados neste exemplo.

Recurso Tipo de recurso Versão da API
Área de trabalho Áreas de Trabalho 2020-03-01-visualização
Conta de automatização automatização 2020-01-13-pré-visualização
Serviços vinculados do espaço de trabalho Áreas de Trabalho 2020-03-01-visualização
Soluções soluções 2015-11-01-visualização

Antes de usar o modelo

O modelo JSON está configurado para solicitar:

  • O nome do espaço de trabalho.
  • A região na qual criar o espaço de trabalho.
  • O nome da conta de automação.
  • A região na qual criar a conta de automação.

Os seguintes parâmetros no modelo são definidos com um valor padrão para o espaço de trabalho do Log Analytics:

  • sku assume como padrão a camada de preço por GB lançada no modelo de preços de abril de 2018.
  • dataRetention tem como padrão 30 dias.

Aviso

Se você quiser criar ou configurar um espaço de trabalho do Log Analytics em uma assinatura que tenha optado pelo modelo de preços de abril de 2018, o único nível de preço válido do Log Analytics é o PerGB2018.

O modelo JSON especifica um valor padrão para os outros parâmetros que provavelmente seriam usados como uma configuração padrão em seu ambiente. Você pode armazenar o modelo em uma conta de armazenamento do Azure para acesso compartilhado em sua organização. Para obter mais informações sobre como trabalhar com modelos, consulte Implantar recursos com modelos ARM e a CLI do Azure.

Se você é novo na Automação do Azure e no Azure Monitor, é importante entender os seguintes detalhes de configuração. Eles podem ajudá-lo a evitar erros ao tentar criar, configurar e usar um espaço de trabalho do Log Analytics vinculado à sua nova conta de automação.

  • Analise os detalhes adicionais para entender completamente as opções de configuração do espaço de trabalho, como modo de controle de acesso, nível de preço, retenção e nível de reserva de capacidade.

  • Revise os mapeamentos de espaço de trabalho para especificar as regiões suportadas em linha ou em um arquivo de parâmetro. Apenas determinadas regiões são suportadas para vincular um espaço de trabalho do Log Analytics e uma conta de automação em sua assinatura.

  • Se você é novo nos logs do Azure Monitor e ainda não implantou um espaço de trabalho, deve revisar as diretrizes de design do espaço de trabalho. Ele irá ajudá-lo a aprender sobre controle de acesso e entender as estratégias de implementação de design que recomendamos para sua organização.

Implementar o modelo

  1. Copie e cole a seguinte sintaxe JSON no seu ficheiro:

    {
      "$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. Edite o modelo para atender às suas necessidades. Considere a criação de um arquivo de parâmetros do Gerenciador de Recursos em vez de passar parâmetros como valores embutidos.

  3. Salve este arquivo em uma pasta local como deployUMSolutiontemplate.json.

  4. Está pronto para implementar este modelo. Você pode usar o PowerShell ou a CLI do Azure. Quando for solicitado um espaço de trabalho e um nome de conta de automação, forneça um nome que seja globalmente exclusivo em todas as assinaturas do 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"
    

    CLI do Azure

    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"
    

    A implementação pode demorar alguns minutos a concluir. Quando terminar, você verá uma mensagem semelhante à seguinte que inclui o resultado:

    Example result when deployment is complete

Rever os recursos implementados

  1. Inicie sessão no portal do Azure.

  2. No portal do Azure, abra a conta de Automação que você criou.

  3. No painel esquerdo, selecione Runbooks. Na página Runbooks, estão listados três runbooks de tutorial criados com a conta de automação.

    Tutorial runbooks created with Automation account

  4. No painel esquerdo, selecione Espaço de trabalho vinculado. Na página Espaço de trabalho vinculado, ele mostra o espaço de trabalho do Log Analytics especificado anteriormente vinculado à sua conta de automação.

    Automation account linked to the Log Analytics workspace

  5. No painel esquerdo, selecione Gerenciamento de atualizações. Na página Gerenciamento de atualizações, ele mostra a página de avaliação sem nenhuma informação como resultado de apenas estar habilitada, e as máquinas não estão configuradas para gerenciamento.

    Update Management feature assessment view

Clean up resources (Limpar recursos)

Quando não precisar mais deles, exclua a solução Atualizações no espaço de trabalho do Log Analytics, desvincule a conta de Automação do espaço de trabalho e exclua a conta e o espaço de trabalho de Automação.

Próximos passos