Criar uma conta de Automação do Azure usando um modelo do Azure Resource Manager

A Automação do Azure fornece um serviço de configuração e automação baseado em nuvem que dá suporte ao gerenciamento consistente em seus ambientes, tanto do Azure quanto não Azure. Este artigo mostra como implantar um modelo do ARM (Azure Resource Manager) que cria uma conta de Automação. O uso de um modelo do ARM apresenta menos etapas comparado a outros métodos de implantação. 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 na sua organização. Para obter mais informações sobre como trabalhar com modelos, confira Implantar recursos com modelos do ARM e a CLI do Azure.

Um modelo do Azure Resource Manager é um arquivo JavaScript Object Notation (JSON) que define a infraestrutura e a configuração do seu projeto. O modelo usa a sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Esse modelo de amostra faz o seguinte:

  • Automatiza a criação de um Azure Monitor espaço de trabalho Log Analytics.
  • Automatiza a criação de uma conta de Automação do Azure.
  • Vincula a conta de Automação ao workspace do Log Analytics.
  • Adiciona runbooks de Automação de exemplo à conta.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Se você for novo na Automação do Azure e Azure Monitor, é importante entender os detalhes de configuração a seguir. Isso pode ajudar você a evitar erros ao tentar criar, configurar e usar um espaço de trabalho do Log Analytics vinculado à sua nova conta de automação.

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

  • Examine mapeamentos de workspace para especificar as regiões com suporte embutidas ou em um arquivo de parâmetro. Ao habilitar soluções, somente determinadas regiões têm suporte para vincular um workspace do Log Analytics e uma Conta de Automação na sua assinatura.

  • Se você for novo nos logs do Azure Monitor e ainda não tiver implantado um espaço de trabalho, leia as diretrizes de design do espaço de trabalho. Este documento vai ajudar você a aprender sobre o controle de acesso e compreender as estratégias de implementação de design que recomendamos para sua organização.

Examinar o modelo

O modelo usado neste artigo é proveniente dos Modelos de Início Rápido do 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'))]"
      }
    }
  ]
}

Os recursos do Azure definidos no modelo:

Implantar o modelo

  1. Selecione o botão Implantar no Azure abaixo para entrar no Azure e abrir o modelo do Resource Manager.

    Botão para implantar o modelo do Resource Manager no Azure.

  2. Digite ou selecione os valores a seguir:

    Propriedade Descrição
    Subscription Selecione sua assinatura do Azure na lista suspensa.
    Resource group Na lista suspensa, selecione o grupo de recursos existente ou selecione Criar.
    Região Esse valor será populado automaticamente.
    Nome do workspace Insira um nome para o novo espaço de trabalho do Log Analytics.
    Sku Padrão para o novo tipo de preço por GB lançado no modelo de preço de abril de 2018. Se você deseja criar ou configurar um espaço de trabalho do Log Analytics em uma assinatura que tiver aceitado o modelo de preços de abril de 2018, o único tipo de preço válido do Log Analytics é PerGB2018.
    Retenção de dados O padrão é 30 dias.
    Location O valor será preenchido automaticamente com o local usado para o grupo de recursos.
    Nome da conta da Automação Insira um nome para sua nova conta de Automação.
    Nome do runbook gráfico de exemplo Deixe como está.
    Descrição do runbook gráfico de exemplo Deixe como está.
    Nome do runbook de exemplo do PowerShell Deixe como está.
    Descrição do runbook de exemplo do PowerShell Deixe como está.
    Nome do runbook de exemplo do Python2Runbook Deixe como está.
    Descrição do Python2Runbook de exemplo Deixe como está.
    Localização de _artifacts Deixar como está. *URI para a localização dos artefatos.
    Token SaS de localização de _artifacts Deixe em branco. O sasToken necessário para acessar _artifactsLocation. Quando o modelo é implantado usando os scripts que acompanham este artigo, um sasToken será gerado automaticamente.

    *Ao tentar executar o modelo do ARM no PowerShell, na CLI ou no recurso de modelos no portal, se o parâmetro _artifactsLocation não estiver definido corretamente, você receberá uma mensagem de erro semelhante à seguinte:

    "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.'."

    Para evitar este erro, ao executar no recurso de modelos no portal, especifique o seguinte valor para o _artifactsLocation parâmetro - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    Ao executar no PowerShell, inclua o parâmetro e seu valor -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    Ao executar na CLI do Azure, inclua o parâmetro e seu valor – --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    Para obter uma referência sobre PowerShell/CLI, confira o seguinte – Criar conta de Automação do Azure (microsoft.com) na seção Usar o modelo.

  3. Selecione Examinar + Criar e Criar. A implantação pode levar alguns minutos para ser concluída. Após a conclusão, a saída será semelhante a seguinte imagem:

    Resultados de exemplo, quando a implantação for concluída

Examinar os recursos implantados

  1. Depois que o cluster for criado, você receberá uma notificação de Implantação bem-sucedida com um link Ir para o recurso. A página do seu grupo de recursos vai listar seus novos recursos. Na lista, selecione sua nova conta de Automação.

  2. No lado esquerdo, emAutomação de Processo, selecione Runbooks. Na página Runbooks, estão listados três runbooks de exemplo criados com a conta de Automação.

    Runbooks do tutorial criados com a conta de Automação

  3. No lado esquerdo, em Recursos relacionados, selecione espaço de trabalho vinculado. A página Espaço de trabalho vinculado, mostra o espaço de trabalho do Log Analytics especificado anteriormente que foi vinculado à sua conta de Automação.

    Conta de Automação vinculada ao workspace do Log Analytics

Próximas etapas

Configure as configurações de diagnóstico para sua conta de automação para enviar fluxos de trabalho e status do trabalho de runbook para o espaço de trabalho do Log Analytics vinculado.