你能用PySphere获得一个客户操作系统吗?

时间:2015-01-09 17:15:42

标签: python-2.7 vmware

我想在我的VMServer上找到所有Linux机器。

我可以运行以下命令来获取所有VM的列表。 vms = server.get_registered_vms() mylist = [] 对于vms中的vm:     virtual_machine = server.get_vm_by_path(vm)     mylist.append(virtual_machine.get_properties)     print vm

但是有没有办法获取VMServer拥有的Guest OS。我不想要一个需要机器打开并需要输入大量密码的解决方法。

1 个答案:

答案 0 :(得分:2)

PySphere提供方法get_properties and get_property(property_name)。如果设置了属性guest_full_name,您可以在此处找到它。

来自文档:

>>> vm1.get_properties()
{'guest_id': 'ubuntuGuest',
 'path': '[DataStore1] Ubuntu/Ubuntu-10.vmx',
 'guest_full_name': 'Ubuntu Linux (32-bit)',
 'name': 'Ubuntu 10.10 Desktop 2200',
 'mac_address': '00:50:56:aa:01:a7'
}

因此,要添加到脚本中,您可以执行以下操作:

vms = server.get_registered_vms()
mylist = []
for vm in vms:
    virtual_machine = server.get_vm_by_path(vm)
    guest_os = virtual_machine.get_property('guest_full_name')
    if server_guest_is_linux(guest_os):
        mylist.append(virtual_machine)
        print vm

def server_guest_is_linux(guest_os):
    if 'linux' in guest_os.lower() \
            or 'ubuntu' in guest_os.lower() \
            or 'centos' in guest_os.lower():
        return True
    return False