使用 Azure PowerShell 啟用 Azure VM 延伸模組

本文顯示如何使用 Azure PowerShell,在 Linux 或 Windows 混合式機器上部署、更新和解除安裝已啟用 Azure Arc 的伺服器所支援的 Azure VM 延伸模組。

注意

已啟用 Azure Arc 的伺服器不支援在 Azure 虛擬機器上部署和管理 VM 延伸模組。 若為 Azure VM,請參閱下列 VM 延伸模組概觀一文。

必要條件

使用 Azure PowerShell 來管理已啟用 Azure Arc 的伺服器所管理混合式伺服器上的 VM 延伸模組之前,您需要安裝 Az.ConnectedMachine 模組。 您可以從工作站執行這些管理作業,您不需要在已啟用 Azure Arc 的伺服器上執行這些管理作業。

在已啟用 Azure Arc 的伺服器上,執行下列命令:

Install-Module -Name Az.ConnectedMachine.

安裝完成時,會傳回下列訊息:

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

啟用延伸模組

若要在已啟用 Azure Arc 的伺服器上啟用 VM 延伸模組,請搭配使用 New-AzConnectedMachineExtension-Name-ResourceGroupName-MachineName-Location-PublisherExtensionType-Settings 參數。

下列範例會在已啟用 Azure Arc 的 Linux 伺服器上啟用 Log Analytics VM 延伸模組:

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

若要在已啟用 Azure Arc 的 Windows 伺服器上啟用 Log Analytics VM 延伸模組,請將上一個範例中的 -ExtensionType 參數值變更為 "MicrosoftMonitoringAgent"

下列範例會在已啟用 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

下列範例會在已啟用 Azure Arc 的伺服器上啟用 Microsoft Antimalware 延伸模組:

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

Key Vault VM 延伸模組

警告

PowerShell 用戶端通常會在 settings.json 中將 \ 新增至 ",這會導致 akvvm_service 失敗並發生錯誤:[CertificateManagementConfiguration] Failed to parse the configuration settings with:not an object.

下列範例會在已啟用 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

Datadog VM 延伸模組

下列範例會在已啟用 Azure Arc 的伺服器上啟用 Datadog VM 延伸模組:

$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

列出已安裝的延伸模組

若要在已啟用 Azure Arc 的伺服器上取得 VM 延伸模組的清單,請搭配使用 Get-AzConnectedMachineExtension-MachineName-ResourceGroupName 參數。

範例:

Get-AzConnectedMachineExtension -ResourceGroupName myResourceGroup -MachineName myMachineName

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

更新延伸模組設定

若要重新設定已安裝的延伸模組,您可以搭配使用 Update-AzConnectedMachineExtension Cmdlet 與 -Name-MachineName-ResourceGroupName-Settings 參數。

請參閱 Cmdlet 的參考文章,以瞭解不同的方法來提供您想要對延伸模組進行的變更。

升級延伸模組

發行支援的 VM 延伸模組新版本時,您可以將其升級至該最新版本。 若要升級 VM 延伸模組,請搭配使用 Update-AzConnectedExtension-MachineName-ResourceGroupName-ExtensionTarget 參數。

針對 -ExtensionTarget 參數,您必須指定延伸模組和可用的最新版本。 若要瞭解可用的最新版本,您可以從 Azure 入口網站中所選取已啟用 Arc 的伺服器的 [延伸模組] 頁面中,或執行 Get-AzVMExtensionImage,來取得這項資訊。 您可以在單一升級要求中指定多個延伸模組,方法是提供以逗號分隔的延伸模組清單,由其發行者定義和類型 (以句點分隔),以及每個延伸模組的目標版本所定義,如下列範例所示。

若要升級適用於 Windows 且具有較新可用版本的 Log Analytics 代理程式延伸模組,請執行下列命令:

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

您可以執行 Get-AzConnectedMachineExtension 命令,隨時檢閱已安裝的 VM 延伸模組版本。 TypeHandlerVersion 屬性值代表延伸模組的版本。

移除延伸模組

若要移除已啟用 Azure Arc 的伺服器上的已安裝 VM 延伸模組,請搭配使用 Remove-AzConnectedMachineExtension-Name-MachineName-ResourceGroupName 參數。

例如,若要移除適用於 Linux 的 Log Analytics VM 延伸模組,請執行下列命令:

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

下一步