Compartir a través de

使用 Azure CLI 启用 Arc VM 扩展(Windows 和 Linux)

本文介绍如何使用 Azure CLI(WindowsLinux)在已启用 Azure Arc 的服务器上部署、升级、更新和卸载虚拟机(VM)扩展

扩展部署先决条件

查看 扩展表中引用的每个 VM 扩展 的文档,以了解其网络和系统要求,这些要求超出了已启用 Arc 的服务器 常规先决条件 和已启用 Arc 的服务器 的网络要求 。 此操作可以帮助避免 Azure 服务或者依赖于该 VM 扩展的功能出现任何连接问题。

若要将扩展部署到已启用 Azure Arc 的服务器,用户需要以下权限:

  • microsoft.hybridcompute/machines/read
  • microsoft.hybridcompute/machines/extensions/read
  • microsoft.hybridcompute/machines/extensions/write

Azure Connected Machine 资源管理员角色包括部署扩展所需的权限。 它还包括删除已启用 Azure Arc 的服务器资源的权限。

安装了一个或多个 VM 扩展的已启用 Azure Arc 的服务器可以在资源组之间或另一个 Azure 订阅之间移动,而不会对其配置产生任何影响。 源范围与目标范围必须在同一个 Microsoft Entra 租户中。 有关在处理之前移动资源和注意事项的详细信息,请参阅将资源移到新的资源组或订阅

先决条件

  • 如需在本地运行 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 中安装 Connected Machine 扩展

这些 ConnectedMachine 命令未作为 Azure CLI(WindowsLinux)的一部分提供。 在使用 Azure CLI(WindowsLinux)连接到由世纪互联运营的 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 参数配合使用。 可以在 相应的 Windows 或 Linux 扩展表中查看每个 VM 扩展的参数值和部署说明、支持的 OS 或其他信息。

此示例在已启用 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 参数配合使用。