2015-07-27 6 views
2

Развертывание файла OVF/OVA на удаленный сервер ESXiРазвертывание файла OVF/OVA

  • Я пытаюсь развернуть файл OVF/OVA на удаленный сервер ESXi.
  • Я хочу сделать это из командной строки.
  • Я написал простой командный файл, который развертывает ovf, используя ovftool.exe.

Вот мой пакетный файл:

@echo off 
    CLS 
    set OVF_COMMAND="C:\Program Files (x86)\VMware\VMwareWorkstation\OVFTool\ovftool.exe" 
    set OVF_DEPLOY_OFF=ovftool 

    IF NOT EXIST %OVF_COMMAND% (
     @echo powershell does not exists at: 
     @echo %OVF_COMMAND% 
     pause 
    ) 

    @echo START OF THE BATCH SCRIPT 
    @echo   ###############**strong text**######################################################## 

    %OVF_DEPLOY_OFF% --noSSLVerify --disableVerification --skipManifestGeneration C:\Newfolder\vAppTS2\vAppTS2.ovf   vi://administrator:[email protected]/nrtms-training/host/141.192.91.9/ 


    @echo ####################################################################### 

Этот работает отлично, но это слишком медленно. Файл OVF содержит один vApp с одной виртуальной машиной. Когда все будет сделано, vApp будет содержать около 9 виртуальных машин. Для развертывания текущего vApp, который содержит только одну виртуальную машину, требуется около 20 минут. Я не могу себе представить, сколько времени потребуется для развертывания vApp с 9 виртуальными машинами. Это путь к сделать его быстрее? Cheers.

ответ

0

Я удалосьвнаходят работу вокруг. Вместо импорта файла ovf из некоторого удаленного местоположения я выбрал клон, который vApp из предопределенного пула ресурсов.

Итак, в начале я создал пул ресурсов, на котором я загрузил vApp.

//connect to server 
Connect-VIServer -Server $args[2].ToString() -Username $args[3] -Password $args[4] 
// search which vApp to move into the new source pool 
// The name of the vApp is given as an argument to the powerCLI script 
// It must be one of the existing vApps 

foreach ($vApps in (Get-vApp)) 
{ 
    if ($vApps.name -eq $args[0]) 
    { 
     # defined source and destination hosts 
     $vmHost_dest = Get-VMHost -Name "100.106.37.10" 
     $vmHost_source = Get-VMHost -Name "100.106.37.9" 

     # create a resource pool on destination host 
     $myDestinationRP = New-ResourcePool -Name "datastore-13" -Location $vmHost_dest 
     New-VApp -Name MyVApp2 -VApp $vApps -Location $myDestinationRP 
    } 
} 

Так что я могу построить обычай ВАПП и хранить его на определенный исходный пул, из которого я могу клонировать его позже, как я, пожалуйста. Если я хочу, чтобы удалить вновь клонированную VAPP я могу сделать следующее:

Get-VApp $vApps | Remove-VApp -Confirm:$false 

Надеется, что это помогает