共用方式為


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

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

必要條件

安裝 Azure CLI 延伸模組

ConnectedMachine 命令不會隨著 Azure CLI 的一部分提供。 在使用 Azure CLI 連線到 Azure 並管理由已啟用 Azure Arc 的伺服器所管理的混合式伺服器上 VM 擴充功能之前,您需要載入 ConnectedMachine 擴充功能。

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

執行下列命令以安裝 Azure CLI ConnectedMachine 擴充功能:

az extension add --name connectedmachine

啟用擴充功能

若要在已啟用 Azure Arc 的伺服器上啟用 VM 擴充功能,請搭配 az connectedmachine extension create--machine-name--extension-name--location--typesettings--publisher 參數使用。

此範例會在已啟用 Azure Arc 的伺服器上啟用自訂腳本擴充功能:

az connectedmachine extension create --machine-name "myMachineName" --name "CustomScriptExtension" --location "regionName" --type "CustomScriptExtension" --publisher "Microsoft.Compute" --settings "{\"commandToExecute\":\"powershell.exe -c \\\"Get-Process | Where-Object { $_.CPU -gt 10000 }\\\"\"}" --type-handler-version "1.10" --resource-group "myResourceGroup"

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

az connectedmachine extension create --resource-group "resourceGroupName" --machine-name "myMachineName" --location "regionName" --publisher "Microsoft.Azure.KeyVault" --type "KeyVaultForLinux or KeyVaultForWindows" --name "KeyVaultForLinux or KeyVaultForWindows" --settings '{"secretsManagementSettings": { "pollingIntervalInS": "60", "observedCertificates": ["observedCert1"] }, "authenticationSettings": { "msiEndpoint": "http://localhost:40342/metadata/identity" }}'

此範例會在已啟用 Azure Arc 的 Windows 伺服器上啟用 Microsoft Antimalware 擴充功能:

az connectedmachine extension create --resource-group "resourceGroupName" --machine-name "myMachineName" --location "regionName" --publisher "Microsoft.Azure.Security" --type "IaaSAntimalware" --name "IaaSAntimalware" --settings '"{\"AntimalwareEnabled\": \"true\"}"'

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

az connectedmachine extension create --resource-group "resourceGroupName" --machine-name "myMachineName" --location "regionName" --publisher "Datadog.Agent" --type "DatadogWindowsAgent" --settings '{"site": "us3.datadoghq.com"}' --protected-settings '{"api_key": "YourDatadogAPIKey" }'

小提示

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

列出已安裝的延伸模組

若要在已啟用 Azure Arc 的伺服器上取得 VM 擴充功能清單,請搭配 --machine-name--resource-group 參數使用az connectedmachine extension list

az connectedmachine extension list --machine-name "myMachineName" --resource-group "myResourceGroup"

Azure CLI 命令的輸出預設是採用 JSON (JavaScript 物件標記法) 格式。 舉例來說,若要將預設輸出變更為清單或資料表,請使用 az config set core.output=table。 您也可以針對輸出格式的一次性變更新增 --output 至任何命令。

下列範例顯示來自 az connectedmachine extension -list 命令的局部 JSON 輸出:

[
  {
    "autoUpgradingMinorVersion": "false",
    "forceUpdateTag": null,
    "id": "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/SVR01/extensions/DependencyAgentWindows",
    "location": "regionName",
    "name": "DependencyAgentWindows",
    "namePropertiesInstanceViewName": "DependencyAgentWindows",

更新擴充功能組態

某些 VM 擴充功能需要組態設定,以便您可以在已啟用 Azure Arc 的伺服器上安裝它們(例如自定義腳本擴充功能)。 若要升級擴充功能的組態,請使用 az connectedmachine extension update

下列範例說明如何設定自訂指令碼延伸模組:

az connectedmachine extension update --name "CustomScriptExtension" --type "CustomScriptExtension" --publisher "Microsoft.HybridCompute" --settings "{\"commandToExecute\":\"powershell.exe -c \\\"Get-Process | Where-Object { $_.CPU -lt 100 }\\\"\"}" --type-handler-version "1.10" --machine-name "myMachine" --resource-group "myResourceGroup"

升級延伸模組

發行支援的 VM 延伸模組新版本時,您可以將其升級至該最新版本。 若要升級 VM 擴充功能,請使用 az connectedmachine upgrade-extension,並搭配 --machine-name--resource-group--extension-targets 參數。

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

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

您可以執行 命令 az connectedmachine extension list,隨時檢閱已安裝的 VM 擴充功能版本。 typeHandlerVersion 屬性值代表延伸模組的版本。

小提示

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

移除擴充功能

若要從已啟用 Azure Arc 的伺服器中將已安裝的 VM 擴充功能移除,請搭配 az connectedmachine extension delete--extension-name--machine-name 參數使用 --resource-group