如何使用pyvmomi为vmnic添加ESXi管理服务
报错原因说明
host.configManager.networkSystem.AddServiceConsoleVirtualNic是ESXi 5.0及更早版本的遗留接口,仅适用于当时独立的服务控制台端口场景。ESXi 5.1及之后版本已将服务控制台整合进VMkernel网络栈,该接口已完全废弃,因此调用时会返回The operation is not supported on the object报错。
最优实现路径
ESXi 6.x/7.x/8.x版本中,管理服务属于VMkernel端口的可绑定服务标签,你已经通过AddVirtualNic完成VMkernel端口创建后,只需要通过VirtualNicManager接口为该端口绑定管理服务标签即可,步骤如下:
操作步骤
- 确认你已创建好的VMkernel端口设备名(格式为
vmkX,比如vmk1),该端口已关联到对应封闭网络的端口组、IP配置正确 - 从ESXi主机的配置管理器中获取
virtualNicManager实例 - 调用
SelectVnicForNicType方法,将management类型的服务绑定到目标VMkernel端口
pyvmomi代码示例
# 假设你已经完成ESXi主机连接,host为已获取的HostSystem实例 vnic_manager = host.configManager.virtualNicManager # 替换为你实际创建的VMkernel端口名 target_vmk = "vmk1" # 绑定管理服务 vnic_manager.SelectVnicForNicType(nicType="management", device=target_vmk)
验证与注意事项
- 操作完成后可登录ESXi网页管理端,进入「网络」-「VMkernel网卡」页面,确认目标vmk端口的「服务」列已显示「管理」标签
- 若需要绑定其他服务,只需替换
nicType参数即可,常用服务对应值包括vmotion(vMotion迁移)、vSphereProvisioning(置备流量)、vsan(vSAN流量)等 - 若需要解绑原有VMkernel端口的管理服务,可调用
DeselectVnicForNicType方法,参数规则和上述一致 - 注意:管理服务绑定的对象是VMkernel端口(vmkX),而非物理上行链路vmnic,物理vmnic仅作为端口组的上行链路提供网络连通性
内容的提问来源于stack exchange,提问作者bjb28
相关产品推荐
相关产品推荐

