PySphere/pyvmomi 如何检索 ESXi 主机的 DNS 和路由设置?

PySphere/pyvmomi how to retrieve the DNS and Routing settings of an EXSi host?

使用 PySphere 库如何检索 EXSi 主机的 'DNS and Routing' 配置。

这里我需要检索DNS和路由下的名称属性 -udm00esx04

VMware pyvmomi page, there is a link to the vSphere WS SDK API documentation

虽然该文档并不总是直观的,但它是我找到此类问题答案的地方。

要回答你的问题,你需要获取宿主对象,然后获取你想要的网络属性(attributes)。假设"esxi"是一个vim.HostSystem类型的对象,下面会得到你想要的信息:

 # dns name
 esxi.config.network.dnsConfig.hostName
 # domain name
 esxi.config.network.dnsConfig.domainName
from pyVim import connect
from pyVmomi import vmodl
from pyVmomi import vim


address = ''
username = ''
password =  ''

con = connect.SmartConnect(host=address, user=username, pwd=password)
content = con.RetrieveContent()

cv = content.viewManager.CreateContainerView(
            container=content.rootFolder, type=[vim.HostSystem], recursive=True)
for child in cv.view:
    print child.name, ": ", child.config.network.dnsConfig.hostName