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

使用 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反恶意软件扩展:

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 扩展列表,请使用 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 属性值表示扩展的版本。

小窍门

可以为许多 VM 扩展配置 自动升级

删除扩展

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