Tworzenie konta usługi Azure Automation przy użyciu szablonu usługi Resource Manager

Usługa Azure Automation oferuje opartą na chmurze usługę automatyzacji i konfiguracji, która obsługuje spójne zarządzanie w środowiskach platformy Azure i spoza platformy Azure. W tym artykule pokazano, jak wdrożyć szablon usługi Azure Resource Manager (szablon usługi ARM), który tworzy konto usługi Automation. Użycie szablonu usługi ARM wykonuje mniej kroków w porównaniu z innymi metodami wdrażania. Szablon JSON określa wartości domyślne parametrów, które prawdopodobnie będą używane jako standardowa konfiguracja w danym środowisku. Szablon można przechowywać na koncie usługi Azure Storage na potrzeby dostępu współdzielonego w organizacji. Aby uzyskać więcej informacji na temat pracy z szablonami, zobacz Wdrażanie zasobów przy użyciu szablonów usługi ARM i interfejsu wiersza polecenia platformy Azure.

Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.

Ten szablon przykładowy wykonuje następujące czynności:

  • Automatyzuje tworzenie obszaru roboczego usługi Log Analytics usługi Azure Monitor.
  • Automatyzuje tworzenie konta usługi Azure Automation.
  • Łączy konto usługi Automation z obszarem roboczym usługi Log Analytics.
  • Dodaje przykładowe elementy runbook usługi Automation do konta.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

Jeśli dopiero zaczynasz korzystać z usług Azure Automation i Azure Monitor, ważne jest, aby zrozumieć szczegóły konfiguracji. Zrozumienie może pomóc uniknąć błędów podczas próby utworzenia, skonfigurowania i użycia obszaru roboczego usługi Log Analytics połączonego z nowym kontem usługi Automation.

  • Przejrzyj dodatkowe szczegóły , aby w pełni zrozumieć opcje konfiguracji obszaru roboczego, takie jak tryb kontroli dostępu, warstwa cenowa, przechowywanie i poziom rezerwacji pojemności.

  • Przejrzyj mapowania obszarów roboczych , aby określić obsługiwane regiony w tekście lub w pliku parametrów. Tylko niektóre regiony są obsługiwane w przypadku łączenia obszaru roboczego usługi Log Analytics i konta usługi Automation w ramach subskrypcji.

  • Jeśli dopiero zaczynasz korzystać z dzienników usługi Azure Monitor i nie wdrożono jeszcze obszaru roboczego, zapoznaj się ze wskazówkami dotyczącymi projektowania obszaru roboczego. Ten dokument pomoże Ci dowiedzieć się więcej na temat kontroli dostępu i ułatwić zrozumienie zalecanych strategii implementacji projektu dla organizacji.

Przegląd szablonu

Szablon używany w tym artykule pochodzi z szablonów szybkiego startu platformy 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'))]"
      }
    }
  ]
}

Zasoby platformy Azure zdefiniowane w szablonie:

Wdrażanie szablonu

  1. Wybierz poniższy przycisk Wdróż na platformie Azure, aby zalogować się na platformie Azure i otworzyć szablon usługi ARM.

    Button to deploy the Resource Manager template to Azure.

  2. Wprowadź lub wybierz poniższe wartości:

    Właściwość Opis
    Subskrypcja Z listy rozwijanej wybierz subskrypcję platformy Azure.
    Grupa zasobów Z listy rozwijanej wybierz istniejącą grupę zasobów lub wybierz pozycję Utwórz nową.
    Region (Region) Ta wartość zostanie wypełniona automatycznie.
    Nazwa obszaru roboczego Wprowadź nazwę nowego obszaru roboczego usługi Log Analytics.
    SKU Domyślnie jest to warstwa cenowa GB opublikowana w modelu cenowym z kwietnia 2018 r. Jeśli chcesz utworzyć lub skonfigurować obszar roboczy usługi Log Analytics w subskrypcji, która zdecydowała się na model cenowy z kwietnia 2018 r., jedyną prawidłową warstwą cenową usługi Log Analytics jest PerGB2018.
    Przechowywanie danych Wartość domyślna to 30 dni.
    Lokalizacja Wartość zostanie wypełniona automatycznie lokalizacją używaną dla grupy zasobów.
    Nazwa konta usługi Automation Wprowadź nazwę nowego konta usługi Automation.
    Nazwa przykładowego graficznego elementu runbook Pozostaw w takiej postaci, w jakiej jest.
    Opis przykładowego graficznego elementu runbook Pozostaw w takiej postaci, w jakiej jest.
    Nazwa przykładowego elementu runbook programu PowerShell Pozostaw w takiej postaci, w jakiej jest.
    Opis przykładowego elementu runbook programu PowerShell Pozostaw w takiej postaci, w jakiej jest.
    Nazwa przykładowego elementu Python2Runbook Pozostaw w takiej postaci, w jakiej jest.
    Opis przykładowego elementu Python2Runbook Pozostaw w takiej postaci, w jakiej jest.
    lokalizacja _artifacts Pozostaw to, co jest.* Identyfikator URI do lokalizacji artefaktów.
    token sas lokalizacji _artifacts Pozostaw to pole puste. Klucz sasToken wymagany do uzyskania dostępu do _artifactsLocationelementu . Po wdrożeniu szablonu przy użyciu towarzyszących skryptów sasToken zostanie wygenerowany automatycznie.

    * Podczas próby uruchomienia szablonu usługi ARM z poziomu programu PowerShell, interfejsu wiersza polecenia lub funkcji Szablony w portalu, jeśli _artifactsLocation parametr nie jest poprawnie ustawiony, zostanie wyświetlony komunikat o błędzie podobny do następującego:

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

    Aby zapobiec temu błędowi, podczas uruchamiania funkcji Szablony w portalu określ następującą wartość parametru _artifactsLocationhttps://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    W przypadku uruchamiania z programu PowerShell dołącz ten parametr i jego wartość -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    W przypadku uruchamiania z poziomu interfejsu wiersza polecenia platformy Azure dołącz ten parametr i jego wartość — --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    Aby uzyskać informacje na temat programu PowerShell/interfejsu wiersza polecenia, zobacz następujące tematy — Tworzenie konta usługi Azure Automation (microsoft.com) w sekcji Korzystanie z szablonu .

  3. Wybierz pozycję Przeglądanie + tworzenie, a następnie pozycję Utwórz. Zakończenie wdrażania może potrwać kilka minut. Po zakończeniu dane wyjściowe są podobne do poniższej ilustracji:

    Example result when deployment is complete

Przeglądanie wdrożonych zasobów

  1. Po zakończeniu wdrażania otrzymasz powiadomienie Wdrożenie zakończyło się pomyślnie z linkiem Przejdź do zasobu . Na stronie Grupa zasobów zostanie wyświetlona lista nowych zasobów. Z listy wybierz nowe konto usługi Automation.

  2. Po lewej stronie w obszarze Automatyzacja procesów wybierz pozycję Elementy Runbook. Strona Elementy Runbook zawiera listę trzech przykładowych elementów Runbook utworzonych przy użyciu konta usługi Automation.

    Tutorial runbooks created with Automation account

  3. Po lewej stronie w obszarze Powiązane zasoby wybierz pozycję Połączony obszar roboczy. Na stronie Połączony obszar roboczy zostanie wyświetlony określony wcześniej obszar roboczy usługi Log Analytics połączony z kontem usługi Automation.

    Automation account linked to the Log Analytics workspace

Następne kroki

Skonfiguruj ustawienia diagnostyczne dla konta usługi Automation, aby wysyłać stan zadania elementu Runbook i strumienie zadań do połączonego obszaru roboczego usługi Log Analytics.