python pyvmomi操作VMware(九):正确获取克隆的虚拟机IP所有信息

背景: 克隆出来的虚拟机遇到了一个很奇怪的现象,克隆配置的IP和显示的第一IP地址不符合,如下图,当我去检查配置的IP,机器上的IP也配置成功了,但获取IP却是192.168.122.1。

在这里插入图片描述
目的: 获取克隆出来的虚拟机对象的IP是192.168.30.222
原获取IP的代码:

vm = self._get_obj([vim.VirtualMachine], vm_name)
if not vm:
    return {'info': {}, 'status': False}
summary = vm.summary
# IP地址
ip_address = summary.guest.ipAddress
host_name = summary.guest.hostName

发现这种获取方式是极其不严谨的,当克隆的虚拟机有这种虚拟的IP的时候,大概率会出现这种获取不到想要的IP信息。
现获取IP的代码:

vm = self._get_obj([vim.VirtualMachine], vm_name)
if not vm:
    return {'info': {}, 'status': False}
# IP地址
ips = []
if vm.guest.net:
    for i in vm.guest.net:
        if i.network:
            ips.extend(i.ipAddress)

这样获取的IP会获取到这个虚拟机的所有IP(包括IPv6)
后续只需要判断你设置的IP是否在这个ips列表里面就可以了。

猜你喜欢

转载自blog.csdn.net/qq_42631707/article/details/108659791
今日推荐