你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
为 VMware VM 大规模安装 Arc 代理
本文介绍如何为 VMware VM 大规模安装 Arc 代理并使用 Azure 管理功能。
先决条件
在为 VMware VM 大规模安装 Arc 代理之前,请确保满足以下条件:
资源网桥必须处于运行状态。
vCenter 必须处于连接状态。
用户帐户必须具有 Azure Arc VMware 管理员角色中列出的权限。
所有目标计算机均:
- 已开机,并且资源网桥与运行 VM 的主机之间存在网络连接。
- 运行受支持的操作系统。
- VMware 工具安装在计算机上。 如果未安装 VMware 工具,门户中会灰显启用来宾管理操作。
注意
如果未安装 VMware 工具,可以使用带外方法安装 Arc 代理。
- 能够通过防火墙进行连接,以通过 Internet 进行通信,并且不会阻止这些 URL。
注意
如果使用的是 Linux VM,则帐户不得提示使用 sudo 命令登录。 若要替代提示,请从终端运行
sudo visudo
,并将<username> ALL=(ALL) NOPASSWD:ALL
添加到文件的末尾。 确保替换<username>
。
如果 VM 模板包含这些更改,则无需为从该模板创建的 VM 执行此操作。
方法 A:从门户大规模安装 Arc 代理
如果计算机共享相同的管理员凭据,则管理员可以通过 Microsoft Azure 门户为多台计算机安装代理。
导航到 Azure Arc 中心并选择“vCenter 资源”。
选择所有计算机,然后选择“在 Azure 中启用”选项。
选中“启用来宾管理”复选框,以在所选计算机上安装 Arc 代理。
如果要通过代理连接 Arc 代理,请提供代理服务器详细信息。
若要通过专用终结点连接 Arc 代理,请按照这些步骤设置 Azure 专用链接。
注意
专用终结点连接仅适用于 Arc 代理到 Azure 的通信。 对于 Arc 资源网桥到 Azure 的连接,不支持 Azure 专用链接。
请提供计算机的管理员用户名和密码。
注意
对于 Windows VM,该帐户必须是本地管理员组的一部分;对于 Linux VM,它必须是根帐户。
方法 B:使用 AzCLI 命令安装 Arc 代理
以下 Azure CLI 命令可用于安装 Arc 代理。
az connectedvmware vm guest-agent enable --password
--resource-group
--username
--vm-name
[--https-proxy]
[--no-wait]
方法 C:使用帮助程序脚本大规模安装 Arc 代理
可以使用通过此处提供的 AzCLI 命令生成的帮助程序脚本自动安装 Arc 代理。 下载此帮助程序脚本以大规模启用 VM 并安装 Arc 代理。 在单个 ARM 部署中,帮助程序脚本可以在 200 个 VM 上启用并安装 Arc 代理。
脚本的功能
创建用于跟踪其操作的日志文件 (vmware-batch.log)。
生成指向创建的所有部署的 Azure 门户链接列表
(all-deployments-<timestamp>.txt)
。创建 ARM 部署文件
(vmw-dep-<timestamp>-<batch>.json)
。如果启用了来宾管理,则可以在单个 ARM 部署中最多启用 200 个 VM,否则会启用 400 个 VM。
支持以 cron 作业身份运行,以启用 vCenter 中的所有 VM。
允许向 Azure 进行服务主体身份验证,以实现自动化。
运行此脚本之前,请安装 az cli 和connectedvmware
扩展。
先决条件
运行此脚本之前,请安装:
此处的 Azure CLI。
Azure CLI 的
connectedvmware
扩展:运行az extension add --name connectedvmware
以安装它。
使用情况
将脚本下载到本地计算机。
打开 PowerShell 终端并导航到包含脚本的目录。
运行以下命令以允许脚本运行,因为脚本是未签名的脚本(如果在完成所有步骤之前关闭会话,请再次针对新会话运行此命令):
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
。使用所需的参数运行脚本。 例如
.\arcvmware-batch-enablement.ps1 -VCenterId "<vCenterId>" -EnableGuestManagement -VMCountPerDeployment 3 -DryRun
。 将<vCenterId>
替换为 vCenter 的 ARM ID。
参数
VCenterId
:VM 所在的 vCenter 的 ARM ID。EnableGuestManagement
:如果指定了此开关,则脚本将在 VM 上启用来宾管理。VMCountPerDeployment
:要为每个 ARM 部署启用的 VM 数。 如果启用了来宾管理,则最大值为 200,否则为 400。DryRun
:如果指定了此开关,则脚本将仅创建 ARM 部署文件。 否则,脚本还将部署 ARM 部署。
以 Cron 作业身份运行
可以使用 Windows 任务计划程序将此脚本设置为以 cron 作业身份运行。 下面是用于创建计划任务的示例脚本:
$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-File "C:\Path\To\vmware-batch-enable.ps1" -VCenterId "<vCenterId>" -EnableGuestManagement -VMCountPerDeployment 3 -DryRun'
$trigger = New-ScheduledTaskTrigger -Daily -At 3am
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "EnableVMs"
将<vCenterId>
替换为 vCenter 的 ARM ID。
要取消注册任务,请运行以下命令:
Unregister-ScheduledTask -TaskName "EnableVMs"
方法 D:使用带外方法大规模安装 Arc 代理
Arc 代理可以直接安装在计算机上,无需依赖 VMware 工具或 API。 按照带外方法操作,首先将计算机加入为已启用 Arc 的服务器资源,其资源类型为 Microsoft.HybridCompute/machines。 之后,执行链接到 vCenter操作,以将计算机的 Kind 属性更新为 VMware,从而启用虚拟生命周期操作。
将计算机连接为已启用 Arc 的服务器资源: 使用已启用 Arc 的服务器脚本安装 Arc 代理。
可以使用以下任何自动化方法大规模安装 Arc 代理:
将已启用 Arc 的服务器资源链接到 vCenter:以下命令会将混合计算计算机的 Kind 属性更新为VMware。 将计算机链接到 vCenter 将启用计算机上的虚拟生命周期操作和电源周期操作(启动、停止等)。
以下命令扫描属于指定订阅中 vCenter 的所有 Arc for Server 计算机,并将计算机与该 vCenter 链接。
az connectedvmware vm create-from-machines --subscription contoso-sub --vcenter-id /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/allhands-demo/providers/microsoft.connectedvmwarevsphere/VCenters/ContosovCentervcenters/contoso-vcenter
以下命令扫描属于指定资源组中 vCenter 的所有 Arc for Server 计算机,并将计算机与该 vCenter 链接。
az connectedvmware vm create-from-machines --resource-group contoso-rg --vcenter-id /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/allhands-demo/providers/microsoft.connectedvmwarevsphere/VCenters/ContosovCentervcenters/contoso-vcenter
以下命令可用于将单个 Arc for Server 资源链接到 vCenter。
az connectedvmware vm create-from-machines --resource-group contoso-rg --name contoso-vm --vcenter-id /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/allhands-demo/providers/microsoft.connectedvmwarevsphere/VCenters/ContosovCentervcenters/contoso-vcenter