共用方式為


使用 Azure PowerShell 啟用 Azure VM 擴充功能

本文說明如何使用 Azure PowerShell 在已啟用 Azure Arc 的伺服器上部署、更新和卸載 虛擬機 (VM) 擴充 功能。

必要條件

  • 具備 Azure PowerShell 的電腦。 如需指示,請參閱 安裝並設定 Azure PowerShell

  • 模組 Az.ConnectedMachine 。 在使用 Azure PowerShell 來管理已啟用 Azure Arc 的伺服器所管理混合式伺服器上的 VM 擴充功能之前,您需要安裝此模組。

    您可以從工作站執行這些管理作業,而不是在已啟用 Azure Arc 的伺服器上執行。

    執行下列命令以安裝 Az.ConnectedMachine 模組:

    Install-Module -Name Az.ConnectedMachine
    

啟用擴充功能

若要在已啟用 Azure Arc 的伺服器上啟用 VM 擴充功能,請搭配 、、、、、New-AzConnectedMachineExtension、 和-Name-ResourceGroupName 參數使用。-MachineName-Location-PublisherExtensionType-Settings

此範例會在已啟用 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 的 Windows 伺服器上啟用 Microsoft Antimalware 擴充功能:

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

此範例會在已啟用 Azure Arc 的伺服器上啟用 Key Vault VM 擴充功能:

警告

在 settings.json 檔案中新增 \" 會導致失敗,並出現 akvvm_service 下列錯誤: [CertificateManagementConfiguration] Failed to parse the configuration settings with:not an object.

雖然 PowerShell 使用者通常會使用 \" 序列來逸出其他程式代碼區塊中的引號,但您應該避免settings.json檔案中的格式設定。

# 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

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

小提示

已啟用 Arc 的伺服器支援許多其他延伸模組。 如需詳細資訊,請參閱 使用已啟用 Azure Arc 的伺服器進行虛擬機擴充功能管理

列出已安裝的延伸模組

若要取得已啟用 Azure Arc 之伺服器上的 VM 擴充功能清單,請搭配 -MachineName-ResourceGroupName 參數使用Get-AzConnectedMachineExtension

Get-AzConnectedMachineExtension -ResourceGroupName myResourceGroup -MachineName myMachineName

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

更新擴充功能組態

若要重新設定已安裝的擴充功能,您可以使用 Update-AzConnectedMachineExtension Cmdlet 搭配 -Name-MachineName-ResourceGroupName-Settings 參數。

如需詳細資訊,請參閱 Update-AzConnectedMachineExtension

升級延伸模組

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

針對 -ExtensionTarget 參數,您必須指定延伸模組和可用的最新版本。 若要判斷擴充功能可用的最新版本,請移至 Azure 入口網站 中所選已啟用 Azure Arc 之伺服器的 [擴充功能] 頁面,或執行 Get-AzVMExtensionImage。 您可以在單一升級要求中指定多個延伸模組,方法是同時提供:

  • 以逗號分隔的延伸模組清單,由其發行者和類型定義(以句號分隔)
  • 每個擴充功能的目標版本

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

小提示

許多 VM 擴充功能都可以設定為 自動升級

移除延伸模組

若要在已啟用 Azure Arc 的伺服器上移除已安裝的 VM 擴充功能,請搭配 、 和 參數使用Remove-AzConnectedMachineExtension-Name-MachineName-ResourceGroupName