【发布时间】:2021-06-21 01:04:16
【问题描述】:
我正在尝试使用 pyvmomi 过滤带有 Python3 脚本的虚拟机。
环境:
Versions:
vSphere: 6.5
Python: 3.7.7
pyvmomi: 6.5
此时此刻,这是我下注的代码:
si = SmartConnectNoSSL(
host=config['host'],
user=config['username'],
pwd=password,
port=int(config['port']),
)
# disconnect vc
atexit.register(Disconnect, si)
content = si.RetrieveContent()
obj_view = content.viewManager.CreateContainerView(
content.rootFolder, [vim.VirtualMachine], True)
vms_list = obj_view.view
obj_view.Destroy()
for vm in vms_list:
print(vm.name)
print(vm.tag)
据推测,vm.tag 应该返回一个包含所有 vim.Tag 对象的数组。尽管如此,所有数组都是空的,但以下一个:
vCenter 6.5
(vim.Tag) [
(vim.Tag) {
dynamicType = <unset>,
dynamicProperty = (vmodl.DynamicProperty) [],
key = 'SYSTEM/COM.VMWARE.VIM.VC'
}
]
在检查了集群中的所有虚拟机之后,这是唯一明显带有标签的机器。顺便说一句,我已经创建了一些标签并将它们分配给一些虚拟机作为测试。但是,pyvmomi 仍然没有从虚拟机中检索标签。
这怎么可能?我是否遗漏了任何细节?
提前致谢!
亲切的问候,
【问题讨论】:
-
很遗憾,pyvmomi 无法获取标签。如果要获取标签,需要使用 vSphere Automation SDK for Python 或 VCSA 的 REST API。见:github.com/vmware/pyvmomi/issues/765
标签: python-3.x automation vsphere pyvmomi