Een Azure Automation-account maken met behulp van een Resource Manager-sjabloon

Azure Automation biedt een cloud-gebaseerde automatiserings- en configuratieservice die consistent beheer in uw Azure- en niet-Azure-omgevingen ondersteunt. In dit artikel wordt beschreven hoe u een Azure Resource Manager-sjabloon (ARM-sjabloon) implementeert waarmee een Automation-account wordt gemaakt. Als u een ARM-sjabloon gebruikt, hoeft u minder stappen uit te voeren in vergelijking met andere implementatiemethoden. De JSON-sjabloon geeft standaardwaarden op voor parameters die waarschijnlijk worden gebruikt als een standaardconfiguratie in uw omgeving. U kunt de sjabloon opslaan in een Azure-opslagaccount voor gedeelde toegang in uw organisatie. Zie Resources implementeren met ARM-sjablonen en de Azure CLI voor meer informatie over het werken met sjablonen.

Een Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.

De voorbeeldsjabloon voert de volgende stappen uit:

  • Automatisch maken van een Azure Monitor Log Analytics-werkruimte.
  • Automatisch maken van een Azure Automation-account.
  • Automation-account koppelen aan de Log Analytics-werkruimte.
  • Automation-runbooks toevoegen aan het account.

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Vereisten

Als u geen kennis hebt met Azure Automation en Azure Monitor, is het belangrijk dat u de configuratiegegevens begrijpt. Het begrip kan u helpen fouten te voorkomen wanneer u probeert een Log Analytics-werkruimte te maken, configureren en gebruiken die is gekoppeld aan uw nieuwe Automation-account.

  • Bekijk deze aanvullende informatie om de configuratieopties voor de werkruimte volledig te begrijpen, zoals de modus voor toegangsbeheer, de prijscategorie, retentie en het capaciteitsreserveringsniveau.

  • Bekijk werkruimtetoewijzingen om de ondersteunde regio's inline of in een parameterbestand op te geven. Bij het koppelen van een Log Analytics-werkruimte aan een Automation-Account in uw abonnement, worden slechts bepaalde regio's ondersteund.

  • Als u nog geen ervaring hebt met Azure Monitor-logboeken en nog geen werkruimte hebt geïmplementeerd, raadpleegt u de richtlijnen voor het ontwerpen van de werkruimte. Dit document helpt u meer te weten te komen over toegangsbeheer en helpt u inzicht te krijgen in de aanbevolen ontwerp-implementatiestrategieën voor uw organisatie.

De sjabloon controleren

De sjabloon die in dit artikel wordt gebruikt, is afkomstig van Azure-quickstartsjablonen.

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

De Azure-resources die zijn gedefinieerd in de sjabloon:

De sjabloon implementeren

  1. Selecteer de knop Implementeren in Azure onderaan om u aan te melden bij Azure en de ARM-sjabloon te openen.

    Button to deploy the Resource Manager template to Azure.

  2. Typ of selecteer de volgende waarden:

    Eigenschap Beschrijving
    Abonnement Selecteer uw Azure-abonnement in de vervolgkeuzelijst.
    Resourcegroep Selecteer in de vervolgkeuzelijst de bestaande resourcegroep of selecteer Nieuwe maken.
    Regio Deze waarde wordt automatisch ingevuld.
    Werkruimtenaam Voer een naam in voor uw nieuwe Log Analytics-werkruimte.
    Sku Standaard ingesteld op de prijscategorie per GB die is geïntroduceerd in het prijsmodel van april 2018. Als u een Log Analytics-werkruimte wilt maken of configureren in een abonnement dat is aangemeld voor het prijsmodel van april 2018, is PerGB2018de enige geldige Log Analytics-prijscategorie.
    Gegevensretentie Standaard ingesteld op 30 dagen.
    Locatie De waarde wordt automatisch ingevuld met de locatie die wordt gebruikt voor de resourcegroep.
    Naam van Automation-account Voer een naam in voor uw nieuwe Automation-account.
    Voorbeeldnaam van grafisch runbook Laat deze staan.
    Voorbeeldbeschrijving van grafisch runbook Laat deze staan.
    Voorbeeldnaam van PowerShell-runbook Laat deze staan.
    Voorbeeldbeschrijving van PowerShell-runbook Laat deze staan.
    Voorbeeldnaam van Python2Runbook Laat deze staan.
    Voorbeeldbeschrijving van Python2Runbook Laat deze staan.
    _artifacts locatie Laat maar.* URI naar de locatie van artefacten.
    Sas-token voor _artifacts locatie Leeg laten. Het sasToken dat is vereist voor toegang _artifactsLocation. Wanneer de sjabloon wordt geïmplementeerd met behulp van de bijbehorende scripts, wordt er automatisch een sasToken gegenereerd.

    * Wanneer u probeert de ARM-sjabloon uit te voeren vanuit PowerShell, CLI of de functie Sjablonen in de portal, ontvangt u een foutbericht dat lijkt op het volgende als de _artifactsLocation parameter niet juist is ingesteld:

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

    Als u deze fout wilt voorkomen, geeft u bij uitvoering vanuit de functie Sjablonen in de portal de volgende waarde op voor de _artifactsLocation parameter - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    Wanneer u uitvoert vanuit PowerShell, neemt u de parameter en de bijbehorende waarde -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json op.

    Wanneer u uitvoert vanuit Azure CLI, neemt u de parameter en de bijbehorende waarde --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json op.

    Zie voor meer informatie over PowerShell/CLI het volgende: Een Azure Automation-account maken (microsoft.com) onder de sectie De sjabloon gebruiken.

  3. Selecteer Controleren en maken, en vervolgens Maken. De implementatie kan enkele minuten duren. Wanneer dit is voltooid, is de uitvoer vergelijkbaar met de volgende afbeelding:

    Example result when deployment is complete

Geïmplementeerde resources bekijken

  1. Zodra de implementatie is voltooid, ontvangt u een melding dat de implementatie is voltooid met een koppeling Naar de resource gaan. Op de pagina Resourcegroep worden uw nieuwe resources weergegeven. Selecteer uw nieuwe Automation-account in de lijst.

  2. Selecteer Runbooks aan de linkerkant onder Procesautomatisering. De pagina Runbooks bevat de drie voorbeeldrunbooks die zijn gemaakt met het Automation-account.

    Tutorial runbooks created with Automation account

  3. Selecteer aan de linkerkant onder Gerelateerde resources de gekoppelde werkruimte. Op de pagina Gekoppelde werkruimte ziet u de Log Analytics-werkruimte die u eerder hebt opgegeven die is gekoppeld aan uw Automation-account.

    Automation account linked to the Log Analytics workspace

Volgende stappen

Configureer diagnostische instellingen voor uw Automation-account om de status van de runbooktaak en taakstromen naar de gekoppelde Log Analytics-werkruimte te verzenden.