通过pyvmomi/vSphere将虚拟机添加到VLAN

0 投票
1 回答
5731 浏览
提问于 2025-04-18 08:19

我查阅了文档(http://pubs.vmware.com/vsphere-55/index.jsp),但是找不到关于如何将虚拟机添加到VLAN的信息。文档里有很多关于创建和配置VLAN的内容,但没有说明如何通过pyvmomi(或者必要时使用esxcli)将虚拟机添加到这些VLAN中。我很确定这是可以做到的,因为在vSphere客户端中可以很轻松地完成这个操作,但我想以自动化的方式来实现。

1 个回答

2

这段代码来自于 这个链接,对我帮助很大:

nicspec = vim.vm.device.VirtualDeviceSpec()
nicspec.operation = vim.vm.device.VirtualDeviceSpec.Operation.add
nicspec.device = nic_type
nicspec.device.wakeOnLanEnabled = True
nicspec.device.deviceInfo = vim.Description()
nicspec.device.backing = vim.vm.device.VirtualEthernetCard.NetworkBackingInfo()
nicspec.device.backing.network = self.get_obj(content, [vim.Network], net_name)
nicspec.device.backing.deviceName = net_name

nicspec.device.connectable = vim.vm.device.VirtualDevice.ConnectInfo()
nicspec.device.connectable.startConnected = True
nicspec.device.connectable.allowGuestControl = True

devices.append(nicspec)

vmconf = vim.vm.ConfigSpec(deviceChange=devices)

它让我能够创建一个合适的配置对象,以便连接到标准交换机上的虚拟网络。

nic_type 是网络设备的类型(比如 e1000、pc32 等),net_name 是网络的名称(也叫端口组)。其他的内容都挺容易理解的。

撰写回答