Condividi tramite


Abilitare le estensioni di macchine virtuali di Azure con Azure PowerShell

Questo articolo illustra come distribuire, aggiornare e disinstallare le estensioni macchina virtuale supportate dai server abilitati per Azure Arc. Illustra come eseguire queste attività in un computer ibrido Linux o Windows usando Azure PowerShell.

Prerequisiti

  • Un computer con Azure PowerShell. Per istruzioni, vedere Come installare e configurare Azure PowerShell.

  • Il modulo Az.ConnectedMachine Prima di usare Azure PowerShell per gestire le estensioni vm nel server ibrido gestito dai server abilitati per Azure Arc, è necessario installare questo modulo.

    È possibile eseguire queste operazioni di gestione dalla workstation. Non è necessario eseguirli nel server abilitato per Azure Arc.

    Eseguire il comando seguente nel server abilitato per Azure Arc:

Install-Module -Name Az.ConnectedMachine

Abilitare un'estensione

Per abilitare un'estensione di macchina virtuale nel server abilitato per Azure Arc, usare New-AzConnectedMachineExtension con i parametri -Name, -ResourceGroupName, -MachineName, -Location, -Publisher, -ExtensionType, e -Settings.

L'esempio seguente abilita l'estensione per script personalizzati in un server abilitato per Azure Arc:

$Setting = @{ "commandToExecute" = "powershell.exe -c Get-Process" }
New-AzConnectedMachineExtension -Name "custom" -ResourceGroupName "myResourceGroup" -MachineName "myMachineName" -Location "regionName" -Publisher "Microsoft.Compute"  -Settings $Setting -ExtensionType CustomScriptExtension

L'esempio seguente abilita l'estensione Microsoft Antimalware in un server Windows abilitato per Azure Arc:

$Setting = @{ "AntimalwareEnabled" = $true }
New-AzConnectedMachineExtension -Name "IaaSAntimalware" -ResourceGroupName "myResourceGroup" -MachineName "myMachineName" -Location "regionName" -Publisher "Microsoft.Azure.Security" -Settings $Setting -ExtensionType "IaaSAntimalware"

Estensione Key Vault per macchina virtuale (VM)

Avviso

L'aggiunta di \ a " nel file settings.json causerà l'esito negativo di akvvm_service con l'errore seguente: [CertificateManagementConfiguration] Failed to parse the configuration settings with:not an object.

Anche se gli utenti di PowerShell usano in genere la sequenza \" per fare l'escape delle virgolette in altri blocchi di codice, dovresti evitare questa formattazione nel file settings.json.

L'esempio seguente abilita l'estensione macchina virtuale Key Vault in un server abilitato per Azure Arc:

# Build settings
    $settings = @{
      secretsManagementSettings = @{
       observedCertificates = @(
        "observedCert1"
       )
      certificateStoreLocation = "myMachineName" # For Linux use "/var/lib/waagent/Microsoft.Azure.KeyVault.Store/"
      certificateStore = "myCertificateStoreName"
      pollingIntervalInS = "pollingInterval"
      }
    authenticationSettings = @{
     msiEndpoint = "http://localhost:40342/metadata/identity"
     }
    }

    $resourceGroup = "resourceGroupName"
    $machineName = "myMachineName"
    $location = "regionName"

    # Start the deployment
    New-AzConnectedMachineExtension -ResourceGroupName $resourceGroup -Location $location -MachineName $machineName -Name "KeyVaultForWindows or KeyVaultforLinux" -Publisher "Microsoft.Azure.KeyVault" -ExtensionType "KeyVaultforWindows or KeyVaultforLinux" -Setting $settings

Estensione macchina virtuale Datadog

L'esempio seguente abilita l'estensione macchina virtuale Datadog in un server abilitato per Azure Arc:

$resourceGroup = "resourceGroupName"
$machineName = "machineName"
$location = "machineRegion"
$osType = "Windows" # change to Linux if appropriate
$settings = @{
    # change to your preferred Datadog site
    site = "us3.datadoghq.com"
}
$protectedSettings = @{
    # change to your Datadog API key
    api_key = "APIKEY"
}

New-AzConnectedMachineExtension -ResourceGroupName $resourceGroup -Location $location -MachineName $machineName -Name "Datadog$($osType)Agent" -Publisher "Datadog.Agent" -ExtensionType "Datadog$($osType)Agent" -Setting $settings -ProtectedSetting $protectedSettings

Elencare le estensioni installate

Per ottenere un elenco delle estensioni di VM nel server abilitato per Azure Arc, usare Get-AzConnectedMachineExtension con i parametri -MachineName e -ResourceGroupName.

Ecco un esempio:

Get-AzConnectedMachineExtension -ResourceGroupName myResourceGroup -MachineName myMachineName

Name    Location  PropertiesType        ProvisioningState
----    --------  --------------        -----------------
custom  westus2   CustomScriptExtension Succeeded

Aggiornare una configurazione dell'estensione

Per riconfigurare un'estensione installata, è possibile usare il Update-AzConnectedMachineExtension cmdlet con i -Nameparametri , -MachineName-ResourceGroupName, e -Settings .

Per comprendere i metodi per fornire le modifiche desiderate all'estensione, vedere l'articolo di riferimento per il cmdlet .

Aggiornare le estensioni

Quando viene rilasciata una nuova versione di un'estensione VM supportata, è possibile eseguirne l'aggiornamento alla versione più recente. Per aggiornare un'estensione di macchina virtuale, usare Update-AzConnectedExtension con i -MachineNameparametri , -ResourceGroupNamee -ExtensionTarget .

Per il parametro -ExtensionTarget è necessario specificare l'estensione e la versione più recente disponibile. Per determinare la versione più recente disponibile per un'estensione, passare alla pagina Estensioni per il server abilitato per Azure Arc selezionato nel portale di Azure o eseguire Get-AzVMExtensionImage. È possibile specificare più estensioni in una singola richiesta di aggiornamento specificando entrambi:

  • Elenco di estensioni delimitate da virgole, definite in base al relativo editore e tipo (separati da un punto)
  • Versione di destinazione per ogni estensione

È possibile esaminare la versione delle estensioni vm installate in qualsiasi momento eseguendo il comando Get-AzConnectedMachineExtension. Il valore della proprietà TypeHandlerVersion rappresenta la versione dell'estensione.

Rimuovere le estensioni

Per rimuovere un'estensione VM installata sul server abilitato da Azure Arc, usare Remove-AzConnectedMachineExtension con i parametri -Name, -MachineName e -ResourceGroupName.