你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure CLI 启用 Azure VM 扩展

本文介绍如何部署、升级、更新和卸载已启用 Azure Arc 的服务器支持的虚拟机 (VM) 扩展。 它演示如何使用 Azure CLI 在 Linux 或 Windows 混合计算机上执行这些任务。

注意

已启用 Azure Arc 的服务器不支持管理 VM 扩展,也不支持将 VM 扩展部署到 Azure 虚拟机。 对于 Azure VM,请参阅 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" }'

列出已安装的扩展

若要获取已启用 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 扩展需要进行配置设置才能安装在已启用 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 属性值表示扩展的版本。

删除扩展

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