Вы пытаетесь просто получить IP-адрес для каждой виртуальной машины?
Если это так, вы можете использовать CreateContainerView на vim.VirtualMachine, чтобы получить IP-адреса каждой виртуальной машины из вашего vCentre через гостевой объект. Хотя вам потребуется установить VMWare Tools, чтобы собрать большую часть информации в гостевом объекте.
serviceInstance = SmartConnect(host=host,user=user,pwd=password,port=443)
atexit.register(Disconnect, serviceInstance)
content = serviceInstance.RetrieveContent()
vm_view = content.viewManager.CreateContainerView(content.rootFolder,[vim.VirtualMachine],True)
# Loop through the vms and print the ipAddress
for vm in vm_view.view:
print(vm.guest.ipAddress)
Если вы пытаетесь применить более продвинутый подход, я бы рекомендовал следовать getvnicinfo.py представлен на странице vmware github. Это фактически проходит через более подробное представление, получая информацию для каждой виртуальной машины. Хотя это, похоже, не предоставляет IP-адрес.
Чтобы просмотреть доступные вланы для хоста, следуйте приведенному ниже примеру.
hosts = content.viewManager.CreateContainerView(content.rootFolder,[vim.HostSystem],True)
for host in hosts.view:
for network in host.network:
switch = network.config.distributedVirtualSwitch
for portgroup in switch.portgroup:
print(portgroup.name) # This will print the vlan names
person
woody1990
schedule
07.11.2018