Añadir VM a VLAN a través de Pyvmomi / vSphere
Pregunta
He recorrido los docs ( http://pubs.vmware.com/vsphere-55 / index.jsp ) y no puede encontrar nada acerca de agregar máquinas virtuales a VLAN.Hay mucha información sobre la creación y configuración de ellos, pero no cómo agregar máquinas virtuales a través de Pyvmomi (o ESXCLI si es necesario).Estoy bastante seguro de que se puede hacer, ya que puede hacerlo fácilmente a través del cliente vSphere, pero estoy buscando hacerlo de una manera automatizada.
Solución
El código de https://github.com/rreubenur/vmware-python-examples/blob/master/clone_vm_on_each_host/reconfigure_vnics.py terminó ayudándome a un gran negocio:
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)
Me permitió crear el objeto de configuración adecuado para conectarse a una red virtual en un conmutador estándar.
NIC_TYPE es el tipo de dispositivo de red (E1000, PC32, etc.), NET_NAME es el nombre de la red (Portgroup).El resto es bastante autoexplicativo.