0

我正在尝试使用以下链接中的代码在 vCenter 中部署 ovf 映像:

[ https://github.com/vmware/pyvmomi-community-samples/blob/master/samples/deploy_ovf.py][1]

python vm_deploy.py -s ‘vcneter_url’ -u ‘username’ -p ‘password’ -v ‘.vmdk path’ -f ‘.ovf path’

但它因以下回溯而失败:

   Traceback (most recent call last):
  File "orig.py", line 218, in <module>
    exit(main())
  File "orig.py", line 185, in main
    objs = get_objects(si, args)
  File "orig.py", line 150, in get_objects
    resource_pool_obj = cluster_obj.resourcePool
AttributeError: 'vim.Folder' object has no attribute 'resourcePool'

除了以下链接之外,我无法在线获得有关此错误的太多帮助:

[ https://github.com/vmware/pyvmomi-community-samples/issues/201][1]

我可以看到里面dir(cluster_obj)没有resourcePool,但不知道如何让它工作。

4

1 回答 1

0

仅当您在架构中手动创建了资源池时,此脚本才有效。

但是,只需稍作修改,您就可以针对特定主机的默认资源池。

get_objects函数中替换这个(~第 140 行):

# Get cluster object.
cluster_list = datacenter_obj.hostFolder.childEntity
if args.cluster_name:
    cluster_obj = get_obj_in_list(args.cluster_name, cluster_list)
elif len(cluster_list) > 0:
    cluster_obj = cluster_list[0]
else:
    print "No clusters found in DC (%s)." % datacenter_obj.name
hosts = datacenter_obj.hostFolder.childEntity
resource_pool = hosts[0].resourcePool
# Generate resource pool.
resource_pool_obj = cluster_obj.resourcePool

这样 :

for computeResource in datacenter_obj.hostFolder.childEntity :
    if computeResource.name == 'ip or hostname here':
        resource_pool = computeResource.resourcePool
        break

datacenter_obj在您提供的脚本中给出,如下所示:

datacenter_obj = si.content.rootFolder.childEntity[0]

0 是找到的第一个数据中心。

我希望它会帮助你,即使答案来晚了一点

于 2019-01-28T10:46:57.793 回答