Erstellen eines Azure Automation-Kontos mithilfe einer Resource Manager-Vorlage

Azure Automation bietet einen cloudbasierten Automatisierungs- und Konfigurationsdienst, der eine konsistente Verwaltung Ihrer Azure- und Nicht-Azure-Umgebungen unterstützt. Dieser Artikel zeigt Ihnen, wie Sie eine Azure Resource Manager-Vorlage (ARM-Vorlage) bereitstellen, die ein Automation-Konto erstellt. Bei Verwendung einer ARM-Vorlage werden im Vergleich zu anderen Bereitstellungsmethoden weniger Schritte benötigt. Die JSON-Vorlage gibt Standardwerte für Parameter an, die wahrscheinlich als Standardkonfiguration in Ihrer Umgebung verwendet werden. Für den gemeinsamen Zugriff in Ihrer Organisation können Sie die Vorlage in einem Azure Storage-Konto speichern. Weitere Informationen zum Arbeiten mit Vorlagen finden Sie unter Bereitstellen von Ressourcen mit ARM-Vorlagen und der Azure-Befehlszeilenschnittstelle.

Eine Azure Resource Manager-Vorlage ist eine JSON (JavaScript Object Notation)-Datei, welche die Infrastruktur und die Konfiguration für Ihr Projekt definiert. Die Vorlage verwendet eine deklarative Syntax. Sie beschreiben Ihre geplante Bereitstellung, ohne die Abfolge der Programmierbefehle zu schreiben, mit denen die Bereitstellung erstellt wird.

Mit dieser Beispielvorlage werden die folgenden Schritte ausgeführt:

  • Automatisieren der Erstellung eines Azure Monitor Log Analytics-Arbeitsbereichs
  • Automatisieren der Erstellung eines Azure Automation-Kontos
  • Verknüpfen des Automation-Kontos mit dem Log Analytics-Arbeitsbereich
  • Hinzufügen von Automation-Beispielrunbooks zum Konto.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Voraussetzungen

Wenn Sie mit Azure Automation und Azure Monitor noch nicht vertraut sind, sollten Sie unbedingt die Konfigurationsdetails kennen. Dieses Verständnis kann Ihnen helfen, Fehler zu vermeiden, wenn Sie versuchen, einen mit Ihrem neuen Automation-Konto verknüpften Log Analytics-Arbeitsbereich zu erstellen, zu konfigurieren und zu verwenden.

  • Lesen Sie die zusätzlichen Details, um die Optionen für die Arbeitsbereichskonfiguration vollständig zu verstehen, z. B. Zugriffssteuerungsmodus, Tarif, Datenaufbewahrung und Kapazitätsreservierungsstufe.

  • Überprüfen Sie die Arbeitsbereichszuordnungen, um die unterstützten Regionen inline oder in einer Parameterdatei anzugeben. Es werden nur bestimmte Regionen zum Verknüpfen mit einem Log Analytics-Arbeitsbereich und einem Automation-Konto in Ihrem Abonnement unterstützt.

  • Wenn Sie noch nicht mit Azure Monitor-Protokollen vertraut sind und noch keinen Arbeitsbereich bereitgestellt haben, lesen Sie die Entwurfsanleitungen für Arbeitsbereiche. Dieses Dokument hilft Ihnen, etwas über die Zugriffssteuerung zu erfahren und die empfohlenen Implementierungsstrategien für den Entwurf Ihrer Organisation zu verstehen.

Überprüfen der Vorlage

Die in diesem Artikel verwendete Vorlage stammt aus den Azure-Schnellstartvorlagen.

{
  "$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'))]"
      }
    }
  ]
}

In der Vorlage sind die folgenden Azure-Ressourcen definiert:

Bereitstellen der Vorlage

  1. Wählen Sie unten die Schaltfläche In Azure bereitstellen aus, um sich bei Azure anzumelden und die ARM-Vorlage zu öffnen.

    Schaltfläche zum Bereitstellen der Resource Manager-Vorlage in Azure.

  2. Geben Sie folgende Werte ein bzw. wählen diese aus:

    Eigenschaft BESCHREIBUNG
    Subscription Wählen Sie in der Dropdownliste Ihr Azure-Abonnement aus.
    Resource group Wählen Sie in der Dropdownliste Ihre vorhandene Ressourcengruppe oder die Option Neu erstellen aus.
    Region Dieser Wert wird automatisch aufgefüllt.
    Arbeitsbereichname Geben Sie einen Namen für Ihren neuen Log Analytics-Arbeitsbereich ein.
    Sku Als Standardwert wird der neue, im Preismodell von April 2018 veröffentlichte Tarif pro GB verwendet. Wenn Sie einen Log Analytics-Arbeitsbereich in einem Abonnement mit dem Preismodell von April 2018 erstellen oder konfigurieren möchten, ist PerGB2018 als einziger gültiger Log Analytics-Tarif verfügbar.
    Beibehaltung von Daten Der Standardwert ist 30 Tage.
    Standort Als Wert wird automatisch der Speicherort für die Ressourcengruppe eingefügt.
    Name des Automation-Kontos Geben Sie einen Namen für Ihr neues Automation-Konto ein.
    Beispielname eines grafischen Runbooks Nehmen Sie keine Änderung vor.
    Beispielbeschreibung eines grafischen Runbooks Nehmen Sie keine Änderung vor.
    Beispielname eines PowerShell-Runbooks Nehmen Sie keine Änderung vor.
    Beispielbeschreibung eines PowerShell-Runbooks Nehmen Sie keine Änderung vor.
    Beispielname für Python2Runbook Nehmen Sie keine Änderung vor.
    Beispielbeschreibung für Python2Runbook Nehmen Sie keine Änderung vor.
    „_artifacts“-Speicherort Nehmen Sie keine Änderung vor. * URI zum Artefaktespeicherort.
    SAS-Token für „_artifacts“-Speicherort Lassen Sie dieses Feld leer. Das für den Zugriff auf _artifactsLocation erforderliche „sasToken“. Wenn die Vorlage mit den zugehörigen Skripten bereitgestellt wird, wird ein sasToken automatisch generiert.

    * Wenn Sie versuchen, die ARM-Vorlage über PowerShell, die Befehlszeilenschnittstelle oder das Vorlagenfeature im Portal auszuführen, erhalten Sie eine Fehlermeldung ähnlich der folgenden, wenn der _artifactsLocation-Parameter nicht ordnungsgemäß festgelegt ist:

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

    Um diesen Fehler zu verhindern, geben Sie beim Ausführen über das Vorlagenfeature im Portal folgenden Wert für den _artifactsLocation-Parameter an: https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    Bei der Ausführung über PowerShell schließen Sie den Parameter und dessen Wert ein: -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    Bei der Ausführung über die Azure-Befehlszeilenschnittstelle schließen Sie den Parameter und dessen Wert ein: --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    Weitere Informationen zu PowerShell und zur Befehlszeilenschnittstelle finden Sie im Abschnitt Verwenden der Vorlage unter Erstellen eines Azure Automation-Kontos (microsoft.com).

  3. Wählen Sie Überprüfen + erstellen und danach Erstellen aus. Die Bereitstellung kann einige Minuten dauern. Nach Abschluss des Vorgangs sieht die Ausgabe in etwa wie in der folgenden Abbildung aus:

    Beispielergebnis nach abgeschlossener Bereitstellung

Überprüfen der bereitgestellten Ressourcen

  1. Nach Abschluss der Bereitstellung erhalten Sie die Benachrichtigung Bereitstellung erfolgreich mit dem Link Zu Ressource wechseln. Auf Ihrer Seite der Ressourcengruppe werden Ihre neuen Ressourcen aufgeführt. Wählen Sie in der Liste Ihr neues Automation-Konto aus.

  2. Wählen Sie links unter Prozessautomatisierung die Option Runbooks aus. Auf der Seite Runbooks werden die drei Beispielrunbooks aufgelistet, die mit dem Automation-Konto erstellt wurden.

    Mit dem Automation-Konto erstellte Tutorial-Runbooks

  3. Wählen Sie links unter Verwandte Ressourcen die Option Verknüpfter Arbeitsbereich aus. Auf der Seite Verknüpfter Arbeitsbereich wird der zuvor von Ihnen angegebene Log Analytics-Arbeitsbereich angezeigt, der mit Ihrem Automation-Konto verknüpft ist.

    Mit dem Log Analytics-Arbeitsbereich verknüpftes Automation-Konto

Nächste Schritte

Konfigurieren Sie Diagnoseeinstellungen, damit Ihr Automation-Konto Auftragsstatus und Auftragsdatenströme von Runbooks an den verknüpften Log Analytics Arbeitsbereich sendet.