Creare un account di Automazione di Azure usando un modello di Resource Manager

Automazione di Azure offre un servizio di automazione e configurazione basato sul cloud che supporta la gestione coerente di ambienti Azure e non Azure. Questo articolo illustra come distribuire un modello di Azure Resource Manager che crea un account di automazione. L'uso di un modello di Resource Manager richiede meno passaggi rispetto ad altri metodi di distribuzione. Il modello JSON specifica i valori predefiniti per i parametri che potrebbero essere usati come configurazione standard nell'ambiente in uso. È possibile archiviare il modello in un account di archiviazione di Azure per consentire l'accesso condiviso nell'organizzazione. Per altre informazioni sull'uso dei modelli, vedere Distribuire le risorse con i modelli di Resource Manager e l'interfaccia della riga di comando di Azure.

Un modello di Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione del progetto. Il modello utilizza la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione necessari per creare la distribuzione.

Il modello di esempio esegue questi passaggi:

  • Automatizza la creazione di un'area di lavoro Log Analytics di Monitoraggio di Azure.
  • Automatizza la creazione di un account di Automazione di Azure.
  • Collega l'account di Automazione all'area di lavoro Log Analytics.
  • Aggiunge runbook di automazione di esempio all'account.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Prerequisiti

Se non si ha familiarità con Automazione di Azure e Monitoraggio di Azure, è importante comprendere i dettagli di configurazione. Consentono di evitare errori quando si tenta di creare, configurare e usare un'area di lavoro Log Analytics collegata al nuovo account di Automazione.

  • Vedere altri dettagli per comprendere appieno le opzioni di configurazione dell'area di lavoro, ad esempio la modalità di controllo di accesso, il piano tariffario, la conservazione e il livello di prenotazione della capacità.

  • Vedere i mapping dell'area di lavoro per specificare le aree supportate inline o in un file di parametri. Sono supportate solo determinate aree per il collegamento di un'area di lavoro Log Analytics e un account di Automazione nella sottoscrizione.

  • Se non si ha familiarità con i log di Monitoraggio di Azure e non è già stata distribuita un'area di lavoro, vedere le linee guida per la progettazione delle aree di lavoro. Questo documento consente di ottenere informazioni sul controllo di accesso e di comprendere le strategie di implementazione di progettazione consigliate per l'organizzazione.

Esaminare il modello

Il modello usato in questo articolo è uno dei Modelli di Avvio rapido di 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'))]"
      }
    }
  ]
}

Le risorse di Azure definite nel modello:

Distribuire il modello

  1. Selezionare il pulsante Distribuisci in Azure sotto per accedere ad Azure e aprire il modello di Resource Manager.

    Pulsante per distribuire il modello di Resource Manager in Azure.

  2. Immettere o selezionare i valori seguenti:

    Proprietà Descrizione
    Subscription Selezionare la sottoscrizione di Azure nell'elenco a discesa.
    Resource group Nell'elenco a discesa selezionare il gruppo di risorse esistente oppure selezionare Crea nuovo.
    Region Questo valore verrà popolato automaticamente.
    Nome dell'area di lavoro Immettere un nome per la nuova area di lavoro di Log Analytics.
    Sku Il valore predefinito è il nuovo piano tariffario per GB rilasciato nel modello di prezzi di aprile 2018. Se si vuole creare o configurare un'area di lavoro Log Analytics in una sottoscrizione basata sul modello di prezzi di aprile 2018, l'unico piano tariffario di Log Analytics valido è PerGB2018.
    Conservazione dei dati Il valore predefinito è 30 giorni.
    Location Come valore verrà inserita automaticamente la località usata per il gruppo di risorse.
    Nome dell'account di Automazione Immettere un nome per il nuovo account di Automazione.
    Nome del runbook grafico di esempio Lasciare invariato.
    Descrizione del runbook grafico di esempio Lasciare invariato.
    Nome del runbook di PowerShell di esempio Lasciare invariato.
    Descrizione del runbook di PowerShell di esempio Lasciare invariato.
    Nome python2Runbook di esempio Lasciare invariato.
    Descrizione di Python2Runbook di esempio Lasciare invariato.
    _artifacts Location (Posizione elementi) Lasciare invariato.* URI alla posizione artefatti.
    _artefatti Posizione token SAS Lasciare vuoto. SasToken necessario per accedere a _artifactsLocation. Quando il modello viene distribuito usando gli script correlati, viene generato automaticamente un sasToken.

    *Quando si prova a eseguire il modello di ARM da PowerShell, dall'interfaccia della riga di comando o dalla funzionalità Modelli nel portale, se il parametro _artifactsLocation non è impostato correttamente, viene visualizzato un messaggio di errore simile al seguente:

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

    Per evitare questo errore, quando si esegue dalla funzionalità Modelli nel portale, specificare il valore seguente per il parametro _artifactsLocation - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    Quando si esegue da PowerShell, includere il parametro e il relativo valore -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    Quando si esegue dall'interfaccia della riga di comando di Azure, includere il parametro e il relativo valore: --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json.

    Per informazioni di riferimento su PowerShell o sull'interfaccia della riga di comando, vedere l'articolo seguente: Creare un account di Automazione di Azure (microsoft.com) nella sezione Usare il modello.

  3. Selezionare Rivedi e crea e quindi Crea. Per il completamento della distribuzione possono essere richiesti alcuni minuti. Al termine, l'output sarà simile all'immagine seguente:

    Esempio di risultato al termine della distribuzione

Esaminare le risorse distribuite

  1. Al termine della distribuzione, si riceverà una notifica con il messaggio La distribuzione è riuscita e un collegamento Vai alla risorsa. La pagina Gruppo di risorse elencherà le nuove risorse. Nell'elenco selezionare il nuovo account di Automazione.

  2. Dal lato sinistro, in Automazione processi selezionare Runbook. La pagina Runbook elenca i tre runbook di esempio creati con l'account di Automazione.

    Runbook di esercitazione creati con l'account di automazione

  3. A sinistra, in Risorse correlate selezionare Area di lavoro collegata. Nella pagina Area di lavoro collegata viene visualizzata l'area di lavoro Log Analytics specificata in precedenza collegata all'account di automazione.

    Account di automazione collegato all'area di lavoro Log Analytics

Passaggi successivi

Configurare le impostazioni di diagnostica per l'account di Automazione per inviare lo stato del processo del runbook e i flussi di processo all'area di lavoro Log Analytics collegata.