Как добавить или зарегистрировать файл .vmtx из хранилища данных для размещения инвентаря? - PullRequest
0 голосов
/ 30 апреля 2019

Я создал шаблоны vm в хранилище данных nfs.Теперь с помощью автоматизации я добавляю это хранилище данных на автономный хост ESX, а затем хочу зарегистрировать файл .vmtx на хост ESX.Хотя хранилище данных добавляется на хост через сценарий, я не могу зарегистрировать файл .vmtx на хосте.

Я попробовал приведенный ниже код -

    si = connect()  # connect method connects to the standalone ESX host. It is NOT part of any VCenter
    content = si.RetrieveContent()
    # nfs_datastore = add_nfsdatastore(content, 'esx-ip', 'nfs-ip', 'nfs-path', 'nfs-name')
    # print("nfs datastore added successfully")
    # print(nfs_datastore)
    host = content.rootFolder.childEntity[0]
    host_folder  = host.vmFolder
    print(host_folder)
    hostobj = content.searchIndex.FindByIp(None, "esx-ip",vmSearch=False)
    host_folder.RegisterVM_Task("[nfs-datastore-name]/my-template/ubuntu-temp-1.vmtx", "automation-template-1", asTemplate=True, host=hostobj) 

Я получаю ошибку ниже -

'' 'Ошибка - операция не поддерживается для объекта.'' '

1 Ответ

0 голосов
/ 30 апреля 2019

Нашел ответ.Я указывал неверное значение для параметров пула и asTemplate.

si = connect()  # connect method connects to the standalone ESX host. It is NOT part of any VCenter
    content = si.RetrieveContent()
    # nfs_datastore = add_nfsdatastore(content, 'esx-ip', 'nfs-ip', 'nfs-path', 'nfs-name')
    # print("nfs datastore added successfully")
    # print(nfs_datastore)
    host = content.rootFolder.childEntity[0]
    host_folder  = host.vmFolder
    print(host_folder)
    hostobj = content.searchIndex.FindByIp(None, "esx-ip",vmSearch=False)
    resource_pool = hostobj.vm[0].resourcePool
    host_folder.RegisterVM_Task(path="[nfs-datastore-name]/my-template/ubuntu-temp-1.vmtx", name="automation-template-1", asTemplate=False, pool=resource_pool, host=hostobj)
...