pyvmomi python: как создать виртуальную машину в определенной папке

У меня ESX и в нем разные папки. как создать виртуальную машину в определенной папке с помощью модуля Python pyvmomi.


person Ajayk    schedule 14.04.2017    source источник
comment
Так в чем вопрос?   -  person Mazz    schedule 14.04.2017
comment
@ user7866407, пожалуйста, уточните свой вопрос подробнее.   -  person Raj Damani    schedule 14.04.2017


Ответы (1)


Возможность создать виртуальную машину в указанной папке в VC, используя приведенный ниже код.

 import atexit
 from pyVim import connect
 from pyVmomi import vim

 def create_dummy_vm(name, service_instance, vm_folder, resource_pool, datastore):

    devices = []

    nic_type = 'E1000'
    net_name = 'VM Network'
    vm_name = name
    datastore_path = '[' + datastore + '] ' + vm_name

    vmx_file = vim.vm.FileInfo(logDirectory=None,
                                                            snapshotDirectory=None,
                                                            suspendDirectory=None,
                                                            vmPathName=datastore_path)        

    config = vim.vm.ConfigSpec(name=vm_name, memoryMB=1024, numCPUs=1,
                                                            files=vmx_file, guestId='rhel6_64Guest',
                                                            version='vmx-09', deviceChange=devices)

    print "Creating VM %s" % (vm_name)
    task = vm_folder.CreateVM_Task(config=config, pool=resource_pool)        
    # tasks.wait_for_tasks(service_instance, [task])

def main():

    name = 'ConfigVMAjay'
    DS = 'datastore2'  
    # dc = 'Datacenter Three'      
    si = connect.SmartConnect\
                       (host="@@@", \
                        user="@@@@", \
                        pwd="@@@", port="443")        

    if not si:
            print("Could not connect to the specified host using specified "
                    "username and password")
            return -1

    atexit.register(connect.Disconnect, si)

    content = si.RetrieveContent()
    # datacenter = content.rootFolder.childEntity[0]
    datacenters = content.rootFolder.childEntity
    for dc in datacenters:            
        print "dc.childType",dc.childType#Line to find if it has datacenter child type
        childType = dc.childType            

        # print dir(dc.childEntity[0])
        print "child entity",dc.childEntity[0].name
        if dc.childEntity[0].name == 'Datacenter Three':
            datacenter = dc.childEntity[0]
            break           
    # print "datacenter",dir(datacenter)
    vmfolder = datacenter.vmFolder
    hosts = datacenter.hostFolder.childEntity
    resource_pool = hosts[0].resourcePool
    # print "property of vm_folder",dir(vmfolder)
    vmFolderList = vmfolder.childEntity

    for curItem in vmFolderList:
        try:
            folderName = curItem.name
            # if folderName=='Discovered virtual machine':
            if folderName=='Sanjeet':
                print "Found the directories"
                vmfolder = curItem
        except:
            pass           
    create_dummy_vm(name, si, vmfolder, resource_pool, DS)

    return 0
person Ajayk    schedule 14.04.2017