2016-08-12 2 views
0

VSphere SDK 6.0を使用した仮想マシンのプロビジョニング作業中です。私はまたメモリー、以下の方法でCPUのカスタマイズを持っている以下の方法VSphere SDK 6.0 Javaアプリケーションを使用した作成(クローン作成)時の仮想マシンのカスタマイズ

ManagedObjectReference cloneTask = 
       vimPort.cloneVMTask(vmRef, vmFolderRef, cloneName, cloneSpec); 

を使用してテンプレートから仮想マシンをプロビジョニングすることに成功しました。仮想マシンのカスタマイズにいくつかのJavaコードのサンプルを取得したり、私にいくつかのリンクを取得するために私を助けてなど詳細をネットワーク

VirtualMachineConfigSpec configSpec = new VirtualMachineConfigSpec(); 
     configSpec.setMemoryMB(512l); 
     configSpec.setNumCPUs(2); 

私はHarkDisk、N/WアダプタのようなSDKを使用して、よりカスタマイズを知りたい

、同じことを言及する。どんな助けでも感謝します。

答えて

0

ディスクとネットワークアダプタを追加するには、VirtualDeviceConfigSpecを作成する必要があります。 完全なvirtualdeviceconfigspecを作成した後では、次のようになります。 VirtualMachineConfigSpec.DeviceChange = yourdeviceconfigspec;

このコードは擬似的な#ですが、Javaに近いのでアイデアを得るには十分です。次に、クローン/作成でconfig specを使用します。ここで

すべてが一覧

 public List<VirtualDeviceConfigSpec> Add_Disks(int numberofDisks, ManagedObjectReference dsMoref, VimClient vsphere, string vmname, string dsname) 
    { 
     List<int> diskSize = new List<int> { 20000, 10000, 20000, 10000, 20000 }; 
     List<VirtualDeviceConfigSpec> specs = new List<VirtualDeviceConfigSpec>(); 

     //Add Three Paravirtual Controllers 
     VirtualDeviceConfigSpec para1 = new VirtualDeviceConfigSpec(); 
     ParaVirtualSCSIController p1 = new ParaVirtualSCSIController(); 
     p1.Key = 1; 
     p1.SharedBus = VirtualSCSISharing.noSharing; 
     p1.BusNumber = 1; 
     p1.HotAddRemove = true; 
     para1.Device = p1; 
     para1.Operation = VirtualDeviceConfigSpecOperation.add; 
     specs.Add(para1); 

     VirtualDeviceConfigSpec para2 = new VirtualDeviceConfigSpec(); 
     ParaVirtualSCSIController p2 = new ParaVirtualSCSIController(); 
     p2.Key = 2; 
     p2.SharedBus = VirtualSCSISharing.noSharing; 
     p2.BusNumber = 2; 
     p2.HotAddRemove = true; 
     para2.Device = p2; 
     para2.Operation = VirtualDeviceConfigSpecOperation.add; 
     specs.Add(para2); 

     VirtualDeviceConfigSpec para3 = new VirtualDeviceConfigSpec(); 
     ParaVirtualSCSIController p3 = new ParaVirtualSCSIController(); 
     p3.Key = 3; 
     p3.SharedBus = VirtualSCSISharing.noSharing; 
     p3.BusNumber = 3; 
     p3.HotAddRemove = true; 
     para3.Device = p3; 
     para3.Operation = VirtualDeviceConfigSpecOperation.add; 
     specs.Add(para3); 

     for (int i = 0; i < diskSize.Count; i++) 
     { 
      //set up standard disks specs 
      bool thinProvisioned = true; 
      int size = (diskSize[i]); 
      int controllerKey = 0; 
      int unitNumber = 0; 

      switch (i) 
      { 
       case 0: 
        controllerKey = 1; 
        unitNumber = 0; 
        break; 
       case 1: 
        controllerKey = 3; 
        unitNumber = 0; 
        break; 
       case 2: 
        controllerKey = 2; 
        unitNumber = 0; 
        break; 
       case 3: 
        controllerKey = 2; 
        unitNumber = 1; 
        break; 
       case 4: 
        controllerKey = 3; 
        unitNumber = 1; 
        break; 
      } 

      VirtualDiskFlatVer2BackingInfo backInfo = new VirtualDiskFlatVer2BackingInfo(); 
      backInfo.ThinProvisioned = thinProvisioned; 
      backInfo.DiskMode = "persistent"; 
      backInfo.Datastore = dsMoref; 
      backInfo.FileName = "[" + dsname + "]" + vmname + "/" + vmname + controllerKey + "_" + unitNumber + ".vmdk"; 

      VirtualDisk tempDisk = new VirtualDisk(); 
      tempDisk.Backing = backInfo; 
      tempDisk.CapacityInKB = (1024 * size); 
      tempDisk.ControllerKey = controllerKey; 
      tempDisk.Key = (1 + i); 
      tempDisk.UnitNumber = unitNumber; 

      VirtualDeviceConfigSpec tempConfigSpec = new VirtualDeviceConfigSpec(); 
      tempConfigSpec.Device = tempDisk; 
      tempConfigSpec.FileOperation = VirtualDeviceConfigSpecFileOperation.create; 
      tempConfigSpec.Operation = VirtualDeviceConfigSpecOperation.add; 

      specs.Add(tempConfigSpec); 
     } 

     return specs; 
    } 
に束ね、3つの準仮想化コントローラと5枚のディスクを追加するにはC#の関数であります
関連する問題