你当前正在访问 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 Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 中的 Bash 快速入门。
如需在本地运行 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 的服务器上运行它们。
运行以下命令,安装 Azure CLI ConnectedMachine 扩展:
az extension add --name connectedmachine
添加扩展
若要在已启用 Azure Arc 的服务器上启用 VM 扩展,请将 az connectedmachine extension create
与 --machine-name
、--extension-name
、--location
、--type
、settings
和 --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
参数配合使用。
相关内容
- 你可以使用 Azure PowerShell、Azure 门户或 Azure 资源管理器模板来部署、管理和移除 VM 扩展。
- 可以在 VM 扩展故障排除指南中找到故障排除信息。
- 有关命令的详细信息,请参阅 Azure CLI VM 扩展概述。