Бөлісу құралы:


Создание учетной записи службы автоматизации Azure с помощью шаблона Resource Manager

Служба автоматизации Azure предоставляет облачную службу автоматизации и настройки, которая поддерживает последовательное управление в средах Azure и не в Azure. В этой статье показано, как развернуть шаблон Azure Resource Manager (шаблон ARM), который создает учетную запись автоматизации. При использовании шаблона Resource Manager выполняется меньшее количество действий по сравнению с другими методами развертывания. Шаблон в формате JSON указывает значения по умолчанию для параметров, которые, скорее всего, будут использоваться в качестве стандартной конфигурации в вашей среде. Шаблон можно хранить в учетной записи хранения Azure для общего доступа в организации. Дополнительную информацию о работе с шаблонами см. в статье Развертывание ресурсов с использованием шаблонов Resource Manager и Azure CLI.

Шаблон Azure Resource Manager — это файл нотации объектов JavaScript (JSON), который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. Вы описываете предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.

Этот шаблон выполняет следующее:

  • автоматизирует создание рабочей области Log Analytics Azure Monitor;
  • автоматизирует создание учетной записи службы автоматизации Azure;
  • связывает учетную запись службы автоматизации с рабочей областью Log Analytics.
  • добавляет примеры модулей Runbook автоматизации в учетную запись.

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Необходимые компоненты

Если вы не знакомы со службами автоматизации Azure и Azure Monitor, важно понимать принципы конфигурации. Это поможет избежать ошибок при создании, настройке и использовании рабочей области Log Analytics, связанной с новой учетной записью службы автоматизации Azure.

  • Ознакомьтесь с дополнительными сведениями, чтобы полностью понять возможности конфигурации рабочей области, такие как режим управления доступом, ценовая категория, срок хранения и уровень резервирования мощности.

  • Изучите сопоставления рабочей области, чтобы указывать поддерживаемые регионы в строке или файле параметров. Только определенные регионы поддерживают связывание рабочей области Log Analytics и учетной записи службы автоматизации в подписке.

  • Если вы еще не работали с журналами 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.

    Кнопка для развертывания шаблона Resource Manager в Azure.

  2. Введите или выберите следующие значения:

    Свойство Описание
    Подписка В раскрывающемся списке выберите подписку Azure.
    Группа ресурсов В раскрывающемся списке выберите существующую группу ресурсов, а затем Создать новую.
    Регион Это значение будет заполнено автоматически.
    имя рабочей области. Введите имя новой рабочей области Log Analytics.
    Sku По умолчанию используется ценовая категория с платой за гигабайт, выпущенная в апреле 2018 года. Если вы хотите создать или настроить рабочую область Log Analytics в подписке, использующей модель ценообразования от апреля 2018 года, будет доступна только ценовая категория PerGB2018.
    Хранение данных По умолчанию оно составляет 30 дней.
    Расположение В качестве значения будет автоматически указано расположение, используемое для группы ресурсов.
    Имя учетной записи службы автоматизации Введите имя новой учетной записи службы автоматизации.
    Пример имени графического модуля runbook Оставьте значение по умолчанию.
    Описание примера графического модуля runbook Оставьте значение по умолчанию.
    Пример имени графического модуля runbook для PowerShell Оставьте значение по умолчанию.
    Пример описания графического модуля runbook для PowerShell Оставьте значение по умолчанию.
    Пример имени Python2Runbook Оставьте значение по умолчанию.
    Пример описания Python2Runbook Оставьте значение по умолчанию.
    Расположение _artifacts Оставьте как есть.* URI расположения артефактов.
    Токен SaS расположения _artifacts Не указывайте. SasToken, необходимый для доступа к _artifactsLocation. При развертывании шаблона с помощью сопутствующих сценариев sasToken будет создан автоматически.

    * Если при попытке запустить шаблон ARM посредством PowerShell, интерфейса командной строки или компонента "Шаблоны" на портале параметр _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 и интерфейсе командной строки см. в статье Create Azure Automation account (Создание учетной записи службы автоматизации Azure) в разделе Использование шаблона.

  3. Щелкните Просмотр и создание, а затем Создать. Развертывание может занять несколько минут. По завершении выходные данные должны выглядеть следующим образом.

    Пример результатов по завершении развертывания

Просмотр развернутых ресурсов

  1. После завершения развертывания вы получите уведомление Развертывание прошло успешно со ссылкой Перейти к ресурсу. На странице Группа ресурсов будут перечислены ваши новые ресурсы. В списке выберите новую учетную запись службы автоматизации.

  2. Слева в разделе Автоматизация процессов выберите Модули runbook. На странице Модули runbook перечислены три примера модулей runbook, созданные с помощью учетной записи службы автоматизации.

    Учебные модули Runbook, созданные с помощью учетной записи службы автоматизации

  3. Слева в разделе Связанные ресурсы выберите Связанная рабочая область. На странице Связанная рабочая область отображается рабочая область Log Analytics, указанная ранее, которая связана с учетной записью службы автоматизации.

    Учетная запись службы автоматизации, связанная с рабочей областью Log Analytics

Следующие шаги

Настройте параметры диагностики, чтобы учетная запись службы автоматизации могла отправлять состояния заданий runbook и потоки заданий в связанную рабочую область Log Analytics.