Aktivieren von Azure-VM-Erweiterungen mithilfe von Azure PowerShell

In diesem Artikel erfahren Sie, wie Sie Azure-Erweiterungen für virtuelle Computer (VM), die von Azure-Arc-fähigen Servern unterstützt werden, auf einem Linux- oder Windows-Hybridcomputer unter Verwendung von Azure PowerShell bereitstellen, aktualisieren oder deinstallieren.

Hinweis

Das Bereitstellen und Verwalten von VM-Erweiterungen auf Azure-VMs wird auf Servern mit Azure Arc-Unterstützung nicht unterstützt. Informationen zu Azure-VMs finden Sie im Artikel Erweiterungen und Features für virtuelle Azure-Computer.

Voraussetzungen

Bevor Sie Azure PowerShell zum Verwalten von VM-Erweiterungen auf Ihrem Hybridserver verwenden können, der von Azure Arc-fähigen Servern verwaltet wird, müssen Sie das Modul Az.ConnectedMachine installieren. Diese Verwaltungsvorgänge können von Ihrer Arbeitsstation aus ausgeführt werden. Sie müssen sie nicht auf dem Azure Arc-fähigen Server ausführen.

Führen Sie auf Ihrem Azure Arc-fähigen Server den folgenden Befehl aus:

Install-Module -Name Az.ConnectedMachine.

Nach Abschluss der Installation wird die folgende Meldung zurückgegeben:

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

Aktivieren der Erweiterung

Verwenden Sie New-AzConnectedMachineExtension mit den Parametern -Name, -ResourceGroupName, -MachineName, -Location, -Publisher, -ExtensionType und -Settings, um eine VM-Erweiterung auf dem Azure Arc-fähigen Server zu aktivieren.

Im folgenden Beispiel wird die Log Analytics-VM-Erweiterung auf einem Azure Arc-fähigen Linux-Server aktiviert:

$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"

Ändern Sie im vorherigen Beispiel den Wert für den Parameter -ExtensionType in "MicrosoftMonitoringAgent", um die Log Analytics-VM-Erweiterung auf einem Azure Arc-fähigen Windows-Server zu aktivieren.

Im folgenden Beispiel wird die Erweiterung für benutzerdefinierte Skripts auf einem Server mit Azure Arc-Unterstützung aktiviert:

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

Das folgende Beispiel aktiviert die Microsoft Antimalware-Erweiterung auf einem Azure Arc-fähigen Windows-Server:

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

Azure Key Vault-VM-Erweiterung

Warnung

Wenn Sie in der Datei „settings.json“ \ in " hinzufügen, löst akvvm_service den folgenden Fehler aus: [CertificateManagementConfiguration] Failed to parse the configuration settings with:not an object..

Viele PowerShell-Benutzer verwenden zwar die Sequenz \" zum Escapen von Anführungszeichen in anderen Codeblöcken, Sie sollten diese Formatierung in der Datei „settings.json“ jedoch vermeiden.

Das folgende Beispiel aktiviert die Key Vault-VM-Erweiterung auf einem Server mit Azure Arc-Unterstützung:

# 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

Datadog-VM-Erweiterung

Das folgende Beispiel aktiviert die Datadog-VM-Erweiterung auf einem Server mit Azure Arc-Unterstützung:

$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

Auflisten der Installierten Erweiterungen

Verwenden Sie Get-AzConnectedMachineExtension mit den Parametern -MachineName und -ResourceGroupName, um eine Liste der VM-Erweiterungen auf dem Azure Arc-fähigen Server abzurufen.

Beispiel:

Get-AzConnectedMachineExtension -ResourceGroupName myResourceGroup -MachineName myMachineName

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

Aktuelen der Erweiterungskonfiguration

Um eine installierte Erweiterung neu zu konfigurieren, können Sie das Cmdlet Aktualisieren-Az-verbundene Computer-Erweiterung (Update-AzConnectedMachineExtension) mit den Parametern -Name, -MachineName, -ResourceGroupName und -Settings verwenden.

Lesen Sie den Referenzartikel für das Cmdlet, um die verschiedenen Methoden zum Bereitstellen der Änderungen zu verstehen, die Sie an der Erweiterung vornehmen möchten.

Upgrade der Erweiterung

Wenn eine neue Version einer unterstützten VM-Erweiterung veröffentlicht wird, können Sie diese auf diese neueste Version upgraden. Verwenden Sie Update-AzConnectedExtension mit den Parametern -MachineName, -ResourceGroupName und -ExtensionTarget, um eine VM-Erweiterung zu upgraden.

Für den -ExtensionTarget-Parameter müssen Sie die Erweiterung und die neueste verfügbare Version angeben. Um die neueste verfügbare Version für eine Erweiterung zu ermitteln, besuchen Sie die Seite Erweiterungen für den ausgewählten Arc-fähigen Server im Azure-Portal oder führen Get-AzVMExtensionImage aus. Sie können mehrere Erweiterungen in einer einzelnen Upgradeanforderung angeben, indem Sie eine durch Trennzeichen getrennte Liste von Erweiterungen bereitstellen, die durch ihren Herausgeber und Typ (durch einen Punkt getrennt) und die Zielversion für jede Erweiterung definiert sind.

Führen Sie den folgenden Befehl aus, um die Log Analytics-Agent-Erweiterung für Windows mit einer neueren Version zu upgraden:

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

Sie können die Version der installierten VM-Erweiterungen jederzeit überprüfen, indem Sie den Befehl Get-AzConnectedMachineExtension ausführen. Der TypeHandlerVersion-Eigenschaftswert stellt die Version der Erweiterung dar.

Entfernen von Erweiterungen

Verwenden Sie Remove-AzConnectedMachineExtension mit den Parametern -Name, -MachineName und -ResourceGroupName, um eine installierte VM-Erweiterung auf dem Azure Arc-fähigen Server zu entfernen.

Um beispielsweise die Log Analytics-VM-Erweiterung für Linux zu entfernen, führen Sie den folgenden Befehl aus:

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

Nächste Schritte