Esportazione di gruppi di risorse contenenti estensioni macchina virtualeExporting Resource Groups that contain VM extensions

I gruppi di risorse di Azure possono essere esportati in un nuovo modello di Resource Manager ridistribuibile.Azure Resource Groups can be exported into a new Resource Manager template that can then be redeployed. Il processo di esportazione interpreta le risorse esistenti e crea un modello di Resource Manager che quando viene distribuito diventa un gruppo di risorse simile.The export process interprets existing resources, and creates a Resource Manager template that when deployed results in a similar Resource Group. Quando si utilizza l'opzione di esportazione del gruppo di risorse su un gruppo di risorse contenente le estensioni macchina virtuale, diversi elementi dovranno essere considerati come compatibilità dell'estensione e impostazioni protette.When using the Resource Group export option against a Resource Group containing Virtual Machine extensions, several items need to be considered such as extension compatibility and protected settings.

Questo documento illustra il funzionamento del processo di esportazione del gruppo di risorse relativo alle estensioni macchina virtuale, inclusi un elenco di estensioni supportate e i dettagli sulla gestione di dati protetti.This document details how the Resource Group export process works regarding virtual machine extensions, including a list of supported extensions, and details on handling secured data.

Estensioni macchina virtuale supportateSupported Virtual Machine Extensions

Sono disponibili molte estensioni macchina virtuale.Many Virtual Machine extensions are available. Non tutte le estensioni possono essere esportate in un modello di Resource Manager mediante la funzione "Script di automazione".Not all extensions can be exported into a Resource Manager template using the “Automation Script” feature. Se un'estensione macchina virtuale non è supportata, deve essere inserita manualmente nel modello esportato.If a virtual machine extension is not supported, it needs to be manually placed back into the exported template.

Le estensioni seguenti possono essere esportate con la funzionalità di script di automazione.The following extensions can be exported with the automation script feature.

EstensioneExtension
Acronis BackupAcronis Backup Datadog Windows AgentDatadog Windows Agent OS Patching For LinuxOS Patching For Linux VM Snapshot LinuxVM Snapshot Linux
Acronis Backup LinuxAcronis Backup Linux Estensione DockerDocker Extension Puppet AgentPuppet Agent
BGInfoBg Info DSC ExtensionDSC Extension Site 24x7 Apm InsightSite 24x7 Apm Insight
BMC CTM Agent LinuxBMC CTM Agent Linux Dynatrace LinuxDynatrace Linux Site 24x7 Linux ServerSite 24x7 Linux Server
BMC CTM Agent WindowsBMC CTM Agent Windows Dynatrace WindowsDynatrace Windows Site 24x7 Windows ServerSite 24x7 Windows Server
Chef ClientChef Client HPE Security Application DefenderHPE Security Application Defender Trend Micro DSATrend Micro DSA
Custom ScriptCustom Script IaaS AntimalwareIaaS Antimalware Trend Micro DSA LinuxTrend Micro DSA Linux
Estensione di script personalizzatiCustom Script Extension IaaS DiagnosticsIaaS Diagnostics VM Access For LinuxVM Access For Linux
Custom Script for LinuxCustom Script for Linux Linux Chef ClientLinux Chef Client VM Access For LinuxVM Access For Linux
Datadog Linux AgentDatadog Linux Agent Linux DiagnosticLinux Diagnostic VM SnapshotVM Snapshot

Esportare il gruppo di risorseExport the Resource Group

Per esportare un gruppo di risorse in un modello riutilizzabile, completare i passaggi seguenti:To export a Resource Group into a reusable template, complete the following steps:

  1. Accedere al portale di AzureSign in to the Azure portal
  2. Scegliere Gruppi di risorse dal menu HubOn the Hub Menu, click Resource Groups
  3. Selezionare il gruppo di risorse di destinazione dall'elencoSelect the target resource group from the list
  4. Nel pannello Gruppo di risorse fare clic su Script di automazioneIn the Resource Group blade, click Automation Script

Esportazione del modello

Lo script di automazione di Azure Resource Manager genera un modello di Resource Manager, un file di parametri e diversi esempi di script di distribuzione, ad esempio l'interfaccia della riga di comando di Azure e PowerShell.The Azure Resource Manager automations script produces a Resource Manager template, a parameters file, and several sample deployment scripts such as PowerShell and Azure CLI. A questo punto, il modello esportato può essere scaricato utilizzando il pulsante di download, aggiunto come nuovo modello alla libreria di modelli o ridistribuito utilizzando il pulsante di distribuzione.At this point, the exported template can be downloaded using the download button, added as a new template to the template library, or redeployed using the deploy button.

Configurare le impostazioni protetteConfigure protected settings

Molte estensioni macchina virtuale di Azure includono una configurazione di impostazioni protette, che crittografa i dati sensibili come credenziali e stringhe di configurazione.Many Azure virtual machine extensions include a protected settings configuration, that encrypts sensitive data such as credentials and configuration strings. Le impostazioni protette non vengono esportate con lo script di automazione.Protected settings are not exported with the automation script. Se necessario, le impostazioni protette devono essere reinserite nel modello esportato.If necessary, protected settings need to be reinserted into the exported templated.

Passaggio 1 - Rimuovere il parametro del modelloStep 1 - Remove template parameter

Quando viene esportato il gruppo di risorse, viene creato un singolo parametro del modello per fornire un valore alle impostazioni protette esportate.When the Resource Group is exported, a single template parameter is created to provide a value to the exported protected settings. Questo parametro può essere rimosso.This parameter can be removed. Per rimuovere il parametro, esaminare l'elenco di parametri ed eliminare il parametro che è simile a questo esempio JSON.To remove the parameter, look through the parameter list and delete the parameter that looks similar to this JSON example.

"extensions_extensionname_protectedSettings": {
    "defaultValue": null,
    "type": "SecureObject"
}

Passaggio 2 - Proteggere le proprietà delle impostazioniStep 2 - Get protected settings properties

Poiché ogni impostazione protetta contiene un set di proprietà obbligatorie, è necessario raccogliere in un elenco tali proprietà.Because each protected setting has a set of required properties, a list of these properties need to be gathered. Ogni parametro della configurazione delle impostazioni protette è disponibile nello schema di Azure Resource Manager su GitHub.Each parameter of the protected settings configuration can be found in the Azure Resource Manager schema on GitHub. Tale schema include solo il set di parametri per le estensioni elencate nella sezione panoramica di questo documento.This schema only includes the parameter sets for the extensions listed in the overview section of this document.

All'interno del repository dello schema, cercare l'estensione desiderata, per questo esempio IaaSDiagnostics.From within the schema repository, search for the desired extension, for this example IaaSDiagnostics. Dopo aver individuato le estensioni dell'oggetto protectedSettings, prendere nota di ogni parametro.Once the extensions protectedSettings object has been located, take note of each parameter. Nell'esempio dell'estensione IaasDiagnostic, i parametri richiesti sono storageAccountName, storageAccountKey e storageAccountEndPoint.In the example of the IaasDiagnostic extension, the require parameters are storageAccountName, storageAccountKey, and storageAccountEndPoint.

"protectedSettings": {
    "type": "object",
    "properties": {
        "storageAccountName": {
            "type": "string"
        },
        "storageAccountKey": {
            "type": "string"
        },
        "storageAccountEndPoint": {
            "type": "string"
        }
    },
    "required": [
        "storageAccountName",
        "storageAccountKey",
        "storageAccountEndPoint"
    ]
}

Passaggio 3 - Ricreare la configurazione protettaStep 3 - Re-create the protected configuration

Nel modello esportato, cercare protectedSettings e sostituire l'oggetto delle impostazioni protette esportate con uno nuovo che includa i parametri dell'estensione necessari e un valore per ognuno di essi.On the exported template, search for protectedSettings and replace the exported protected setting object with a new one that includes the required extension parameters and a value for each one.

Nell'esempio dell'estensione IaasDiagnostic, la nuova configurazione delle impostazioni protette dovrebbe essere simile all'esempio seguente:In the example of the IaasDiagnostic extension, the new protected setting configuration would look like the following example:

"protectedSettings": {
    "storageAccountName": "[parameters('storageAccountName')]",
    "storageAccountKey": "[parameters('storageAccountKey')]",
    "storageAccountEndPoint": "https://core.windows.net"
}

La risorsa dell'estensione finale è simile all'esempio JSON seguente:The final extension resource looks similar to the following JSON example:

{
    "name": "Microsoft.Insights.VMDiagnosticsSettings",
    "type": "extensions",
    "location": "[resourceGroup().location]",
    "apiVersion": "[variables('apiVersion')]",
    "dependsOn": [
        "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
    ],
    "tags": {
        "displayName": "AzureDiagnostics"
    },
    "properties": {
        "publisher": "Microsoft.Azure.Diagnostics",
        "type": "IaaSDiagnostics",
        "typeHandlerVersion": "1.5",
        "autoUpgradeMinorVersion": true,
        "settings": {
            "xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('wadmetricsresourceid'), variables('vmName'), variables('wadcfgxend')))]",
            "storageAccount": "[parameters('existingdiagnosticsStorageAccountName')]"
        },
        "protectedSettings": {
            "storageAccountName": "[parameters('storageAccountName')]",
            "storageAccountKey": "[parameters('storageAccountKey')]",
            "storageAccountEndPoint": "https://core.windows.net"
        }
    }
}

Se si utilizzano parametri del modello per fornire i valori delle proprietà, questi devono essere creati.If using template parameters to provide property values, these need to be created. Durante la creazione di parametri del modello per i valori delle impostazioni protette, assicurarsi di utilizzare il tipo di parametro SecureString, in modo che i valori sensibili siano protetti.When creating template parameters for protected setting values, make sure to use the SecureString parameter type so that sensitive values are secured. Per altre informazioni sull'utilizzo dei parametri, vedere Creazione di modelli di Azure Resource Manager.For more information on using parameters, see Authoring Azure Resource Manager templates.

Nell'esempio dell'estensione IaasDiagnostic, i parametri seguenti devono essere creati nella sezione dei parametri del modello di Resource Manager.In the example of the IaasDiagnostic extension, the following parameters would be created in the parameters section of the Resource Manager template.

"storageAccountName": {
    "defaultValue": null,
    "type": "SecureString"
},
"storageAccountKey": {
    "defaultValue": null,
    "type": "SecureString"
}

A questo punto, il modello può essere distribuito utilizzando qualsiasi metodo di distribuzione del modello.At this point, the template can be deployed using any template deployment method.