Activer les extensions de machine virtuelle Azure à l’aide d’Azure PowerShell

Cet article explique comment déployer, mettre à jour et désinstaller des extensions de machine virtuelle Azure, prises en charge par les serveurs avec Azure Arc, sur une machine hybride Linux ou Windows avec Azure PowerShell.

Remarque

Les serveurs avec Azure Arc ne prennent pas en charge le déploiement ni la gestion des extensions de machine virtuelle sur les machines virtuelles Azure. Pour les machines virtuelles Azure, consultez l’article Présentation des extensions de machine virtuelle suivant.

Prérequis

Avant d’utiliser Azure PowerShell pour gérer les extensions de machine virtuelle sur votre serveur hybride géré par des serveurs Azure Arc, vous devez installer le module Az.ConnectedMachine. Ces opérations de gestion peuvent être effectuées à partir de votre station de travail, vous n’avez pas besoin de les exécuter sur le serveur Azure Arc.

Exécutez la commande suivante sur votre serveur Azure Arc :

Install-Module -Name Az.ConnectedMachine.

Une fois l’installation terminée, le message suivant est retourné :

The installed extension 'Az.ConnectedMachine' is experimental and not covered by customer support. Please use with discretion.

Activer l’extension

Pour activer une extension de machine virtuelle sur votre serveur Azure Arc, utilisez New-AzConnectedMachineExtension avec les paramètres -Name, -ResourceGroupName, -MachineName, -Location, -Publisher, -ExtensionType et -Settings.

L’exemple suivant active l’extension de machine virtuelle Log Analytics sur un serveur Linux Azure Arc :

$Setting = @{ "workspaceId" = "workspaceId" }
$protectedSetting = @{ "workspaceKey" = "workspaceKey" }
New-AzConnectedMachineExtension -Name OMSLinuxAgent -ResourceGroupName "myResourceGroup" -MachineName "myMachineName" -Location "regionName" -Publisher "Microsoft.EnterpriseCloud.Monitoring" -Settings $Setting -ProtectedSetting $protectedSetting -ExtensionType "OmsAgentForLinux"

Pour activer l’extension de machine virtuelle Log Analytics sur un serveur Windows Azure Arc, modifiez la valeur du paramètre -ExtensionType en "MicrosoftMonitoringAgent" dans l’exemple précédent.

L'exemple suivant active l'extension de script personnalisé sur un serveur avec 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’exemple suivant active l’extension Microsoft Antimalware sur un serveur Windows Azure Arc :

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

Extension de machine virtuelle Key Vault

Avertissement

Les clients PowerShell ajoutent souvent \ à " dans settings.json, ce qui entraîne l’échec de akvvm_service avec l’erreur suivante : [CertificateManagementConfiguration] Failed to parse the configuration settings with:not an object.

L'exemple suivant active l'extension de machine virtuelle Key Vault sur un serveur avec 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

Extension de machine virtuelle Datadog

L'exemple suivant active l'extension de machine virtuelle Datadog sur un serveur avec 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

Lister les extensions installées

Pour obtenir la liste des extensions de machine virtuelle sur votre serveur Azure Arc, utilisez Get-AzConnectedMachineExtension avec les paramètres -MachineName et -ResourceGroupName.

Exemple :

Get-AzConnectedMachineExtension -ResourceGroupName myResourceGroup -MachineName myMachineName

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

Mettre à jour la configuration de l’extension

Pour reconfigurer une extension installée, vous pouvez utiliser la cmdlet Update-AzConnectedMachineExtension avec les paramètres -Name, -MachineName, -ResourceGroupName et -Settings.

Pour connaître les différents moyens d’apporter les modifications souhaitées à l’extension, consultez l’article de référence de la cmdlet.

Mettre à niveau l’extension

Quand une nouvelle version d’une extension de machine virtuelle prise en charge est publiée, vous pouvez mettre à niveau vers cette dernière version. Pour mettre à niveau une extension de machine virtuelle, utilisez Update-AzConnectedExtension avec les paramètres -MachineName, -ResourceGroupName et -ExtensionTarget.

Pour le paramètre -ExtensionTarget, vous devez spécifier l’extension et la dernière version disponible. Pour déterminer la version la plus récente disponible, vous pouvez obtenir ces informations à partir de la page Extensions pour le serveur Arc sélectionné dans le portail Azure ou en exécutant la commande Get-AzVMExtensionImage. Vous pouvez spécifier plusieurs extensions dans une seule requête de mise à niveau en fournissant une liste d’extensions séparées par des virgules, définies par leur serveur de publication et leur type (en les séparant par un point) et la version cible pour chaque extension, comme indiqué dans l’exemple ci-dessous.

Pour mettre à niveau l’extension de l’agent Log Analytics pour Windows si une version plus récente est disponible, exécutez la commande suivante :

Update-AzConnectedExtension -MachineName "myMachineName" -ResourceGroupName "myResourceGroup" -ExtensionTarget '{\"Microsoft.EnterpriseCloud.Monitoring.MicrosoftMonitoringAgent\":{\"targetVersion\":\"1.0.18053.0\"}}'

Vous pouvez vérifier la version des extensions de machine virtuelle installées à tout moment en exécutant la commande Get-AzConnectedMachineExtension. La valeur de la propriété TypeHandlerVersion représente la version de l’extension.

Suppression d’extensions

Pour supprimer une extension de machine virtuelle installée sur votre serveur Azure Arc, utilisez Remove-AzConnectedMachineExtension avec les paramètres -Name, -MachineName et -ResourceGroupName.

Par exemple, pour supprimer l’extension de machine virtuelle Log Analytics pour Linux, exécutez la commande suivante :

Remove-AzConnectedMachineExtension -MachineName myMachineName -ResourceGroupName myResourceGroup -Name OmsAgentforLinux

Étapes suivantes