使用 Azure CLI 启用 Azure VM 扩展

本文介绍如何使用 Azure CLI 在 Linux 或 Windows 混合计算机上部署、升级、更新和卸载已启用 Azure Arc 的服务器支持的 VM 扩展。

注意

已启用 Azure Arc 的服务器不支持管理 VM 扩展,也不支持将 VM 扩展部署到 Azure 虚拟机。 对于 Azure VM,请查看下面的 VM 扩展概述一文。

先决条件

  • 如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI

    • 如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录

    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展

    • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

安装 Azure CLI 扩展

ConnectedMachine 命令不会作为 Azure CLI 的一部分交付。 使用 Azure CLI 连接到 Azure 并在已启用 Azure Arc 的服务器管理的混合服务器上管理 VM 扩展之前,需要加载 ConnectedMachine 扩展。 这些管理操作可以从工作站执行,无需在已启用 Azure Arc 的服务器上运行。

运行以下命令可获取该扩展:

az extension add --name connectedmachine

启用扩展

若要在已启用 Azure Arc 的服务器上启用 VM 扩展,请结合使用 az connectedmachine extension create 命令以及 --machine-name--extension-name--location--typesettings--publisher 参数。

以下示例将在已启用 Azure Arc 的服务器上启用 Log Analytics VM 扩展:

az connectedmachine extension create --machine-name "myMachineName" --name "OmsAgentForLinux or MicrosoftMonitoringAgent" --location "regionName" --settings '{\"workspaceId\":\"myWorkspaceId\"}' --protected-settings '{\"workspaceKey\":\"myWorkspaceKey\"}' --resource-group "myResourceGroup" --type-handler-version "1.13" --type "OmsAgentForLinux or MicrosoftMonitoringAgent" --publisher "Microsoft.EnterpriseCloud.Monitoring" 

以下示例将在已启用 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 的服务器上启用 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" }'

列出已安装的扩展

若要获取已启用 Azure Arc 的服务器上的 VM 扩展列表,请结合使用 az connectedmachine extension list 命令以及 --machine-name--resource-group 参数。

示例:

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 扩展需要进行配置设置才能安装在已启用 Arc 的服务器上,如自定义脚本扩展和 Log Analytics 代理 VM 扩展。 若要升级扩展的配置,请使用 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 门户中选定的启用了 Arc 的服务器的“扩展”页获取此信息,也可以通过运行 az vm extension image list 获取此信息。 可以在单个升级请求中指定多个扩展,具体方法为提供以逗号分隔的扩展列表,该列表由发布者和类型(以句点分隔)以及每个扩展的目标版本定义,如以下示例所示。

如果适用于 Windows 的 Log Analytics 代理扩展有更新的可用版本,并且你要升级该扩展,请运行以下命令:

az connectedmachine upgrade-extension --machine-name "myMachineName" --resource-group "myResourceGroup" --extension-targets '{"Microsoft.EnterpriseCloud.Monitoring.MicrosoftMonitoringAgent":{"targetVersion":"1.0.18053.0"}}'

可以通过运行命令 az connectedmachine extension list,随时查看已安装的 VM 扩展的版本。 typeHandlerVersion 属性值表示扩展的版本。

删除扩展

若要删除已启用 Azure Arc 的服务器上安装的 VM 扩展,请将 az connectedmachine extension delete 命令与 --extension-name--machine-name--resource-group 参数配合使用。

例如,要删除适用于 Linux 的日志分析 VM 扩展,请运行以下命令:

az connectedmachine extension delete --machine-name "myMachineName" --name "OmsAgentForLinux" --resource-group "myResourceGroup"

后续步骤