Abilitare Gestione aggiornamenti con il modello di Azure Resource Manager

Per abilitare la funzionalità Gestione aggiornamenti di Automazione di Azure nel gruppo di risorse, è possibile usare un modello di Azure Resource Manager. Questo articolo fornisce un modello di esempio che automatizza le operazioni seguenti:

  • 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.
  • Abilita la funzionalità Gestione aggiornamenti.

Se si dispone già di un'area di lavoro Log Analytics e di un account di Automazione distribuiti in un'area supportata della sottoscrizione, questi non sono collegati. L'uso di questo modello crea correttamente il collegamento e distribuisce Gestione aggiornamenti.

Nota

La creazione dell'account RunAs di Automazione non è supportata quando si usa un modello di Resource Manager. Per creare un account RunAs manualmente dal portale o con PowerShell, vedere Creare un account RunAs.

Dopo aver completato questi passaggi, è necessario 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.

Versioni dell'API

La tabella seguente elenca la versione dell'API per le risorse usate in questo esempio.

Risorsa Tipo di risorsa Versione dell'API
Area di lavoro aree di lavoro 2020-03-01-preview
Account di automazione automation 2020-01-13-preview
Servizi collegati dell'area di lavoro aree di lavoro 2020-03-01-preview
Soluzioni solutions 2015-11-01-preview

Prima di usare il modello

Il modello JSON è configurato in modo da richiedere:

  • Nome dell'area di lavoro.
  • Area in cui creare l'area di lavoro.
  • Nome dell'account di Automazione.
  • Area in cui creare l'account di automazione.

I parametri seguenti nel modello vengono impostati con un valore predefinito per l'area di lavoro Log Analytics:

  • Il valore predefinito per sku è il nuovo piano tariffario per GB rilasciato nel modello di prezzi di aprile 2018.
  • Il valore predefinito per dataRetention è 30 giorni.

Avviso

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.

Il modello JSON specifica un valore predefinito per gli altri 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.

Se non si ha familiarità con Automazione di Azure e Monitoraggio di Azure, è importante comprendere i dettagli di configurazione seguenti. 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, è consigliabile vedere le linee guida per la progettazione delle aree di lavoro. Queste informazioni saranno utili per comprendere i meccanismi di controllo di accesso e le strategie di implementazione della progettazione consigliate per l'organizzazione.

Distribuire un modello

  1. Copiare e incollare nel file la sintassi JSON seguente:

    {
      "$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"
          }
        }
      },
      "variables": {
        "Updates": {
            "name": "[concat('Updates', '(', parameters('workspaceName'), ')')]",
            "galleryName": "Updates"
          }
      },
      "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
            }
          }
        },
      {
        "apiVersion": "2015-11-01-preview",
        "location": "[parameters('location')]",
        "name": "[variables('Updates').name]",
        "type": "Microsoft.OperationsManagement/solutions",
        "id": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.OperationsManagement/solutions/', variables('Updates').name)]",
        "dependsOn": [
          "[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
        ],
        "properties": {
          "workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
        },
        "plan": {
          "name": "[variables('Updates').name]",
          "publisher": "Microsoft",
          "promotionCode": "",
          "product": "[concat('OMSGallery/', variables('Updates').galleryName)]"
        }
      },
        {
          "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'))]"
          }
        }
      ]
    }
    
  2. Modificare il modello in base alle esigenze. Valutare la possibilità di creare un file di parametri di Resource Manager anziché passare i parametri come valori inline.

  3. Salvare il file in una cartella locale come deployUMSolutiontemplate.json.

  4. A questo punto è possibile distribuire il modello. È possibile usare PowerShell o l'interfaccia della riga di comando di Azure. Quando vengono richiesti un'area di lavoro e un nome di account di Automazione, fornire un nome univoco a livello globale in tutte le sottoscrizioni di Azure.

    PowerShell

    New-AzResourceGroupDeployment `
        -Name <deployment-name> `
        -ResourceGroupName <resource-group-name> `
        -TemplateFile deployUMSolutiontemplate.json `
        -_artifactsLocation "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json"
    

    Interfaccia della riga di comando di Azure

    az deployment group create --resource-group <my-resource-group> --name <my-deployment-name> --template-file deployUMSolutiontemplate.json --parameters _artifactsLocation="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json"
    

    Per il completamento della distribuzione sarà necessario attendere alcuni minuti. Al termine, viene visualizzato un messaggio simile al seguente che include il risultato:

    Example result when deployment is complete

Esaminare le risorse distribuite

  1. Accedi al portale di Azure.

  2. Nella portale di Azure aprire l'account di Automazione creato.

  3. Nel riquadro sinistro selezionare Runbook. Nella pagina Runbook sono elencati tre runbook di esercitazione creati con l'account di automazione.

    Tutorial runbooks created with Automation account

  4. Nel riquadro sinistro 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.

    Automation account linked to the Log Analytics workspace

  5. Nel riquadro sinistro selezionare Gestione aggiornamenti. Nella pagina Gestione aggiornamenti viene visualizzata la pagina di valutazione senza informazioni in seguito all'abilitazione e i computer non sono configurati per la gestione.

    Update Management feature assessment view

Pulire le risorse

Quando non sono più necessari, eliminare la soluzione Aggiornamenti nell'area di lavoro Log Analytics, scollegare l'account di Automazione dall'area di lavoro e quindi eliminare l'account di Automazione e l'area di lavoro.

Passaggi successivi