您可以使用 PySphere 获得访客 OS 吗?
Can you get a guest OS using PySphere?
我想在我的 VMServer 上找到所有 Linux 机器。
我可以运行获取所有虚拟机的列表。
vms = server.get_registered_vms()
mylist = []
for vm in vms:
virtual_machine = server.get_vm_by_path(vm)
mylist.append(virtual_machine.get_properties)
print vm
但是有什么方法可以获取 VMServer 拥有的 Guest OS。即我不想要需要机器开机并需要输入大量密码的解决方法。
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
我想在我的 VMServer 上找到所有 Linux 机器。
我可以运行获取所有虚拟机的列表。
vms = server.get_registered_vms()
mylist = []
for vm in vms:
virtual_machine = server.get_vm_by_path(vm)
mylist.append(virtual_machine.get_properties)
print vm
但是有什么方法可以获取 VMServer 拥有的 Guest OS。即我不想要需要机器开机并需要输入大量密码的解决方法。
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