我正在尝试从我的vsphere服务器获取vm名称和ip,目前我只有vm的名称。如何获取ip?
#! /usr/bin/env python
from pyVim.connect import SmartConnect, SmartConnectNoSSL, Disconnect
from pyVmomi import vim
import json
from pyVim.connect import SmartConnect
from pyVmomi import vim
import ssl
# Get all the Vms from vCenter server inventory and print its name
# Below is Python 2.7.x code, which can be easily converted to python 3.x version
s=ssl.SSLContext(ssl.PROTOCOL_TLSv1)
s.verify_mode=ssl.CERT_NONE
si= SmartConnectNoSSL(host="192.168.1.2", user="titi@gege.com", pwd="my_pass")
content=si.content
# Method that populates objects of type vimtype
def get_all_objs(content, vimtype):
obj = {}
container = content.viewManager.CreateContainerView(content.rootFolder, vimtype, True)
for managed_object_ref in container.view:
obj.update({managed_object_ref: managed_object_ref.name})
return obj
#Calling above method
getAllVms=get_all_objs(content, [vim.VirtualMachine])
#Iterating each vm object and printing its name
for vm in getAllVms:
print (vm.name)
每个虚拟机的IP地址信息都位于GuestInfo对象中,该对象位于:vm.guestinfo.ipaddress
请注意,返回的IP地址来自VMware Tools,因此请确保这些工具已安装并正在运行。