Aggiungi VM a VLAN tramite Pyvmomi / vSphere
Domanda
Ho svuotato i documenti ( http://pubs.vmware.com/vsphere-55 / index.jsp ) e non riesce a trovare nulla di aggiungere macchine virtuali a VLAN.Ci sono molte informazioni sulla creazione e la configurazione, ma non come aggiungere macchine virtuali a loro attraverso Pyvmomi (o ESXCLI se necessario).Sono abbastanza sicuro che possa essere fatto, come puoi farlo facilmente attraverso il cliente VSphere, ma sto cercando di farlo in una moda automatizzata.
Soluzione
Il codice da https://github.com/rreubenur/vmware-python-examples/blob/master/clone_vm_on_ach_host/reconfigure_vnics.py finì per aiutarmi un grande affare:
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)
.
Mi ha permesso di creare il corretto oggetto di configurazione per il collegamento a una rete virtuale su un interruttore standard.
NIC_TYPE è il tipo di dispositivo di rete (E1000, PC32, ecc.), Net_Name è il nome della rete (Portgroup).Il resto è piuttosto auto-esplicativo.