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

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

  • Я пытаюсь развернуть файл 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 виртуальными машинами. Это способ ускорить? Ваше здоровье.


person cosmincosmos    schedule 27.07.2015    source источник


Ответы (1)


Мне удалось найти обходной путь. Вместо того, чтобы импортировать файл 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 и сохранить его в определенном исходном пуле, откуда я могу клонировать его позже, когда захочу. Если я хочу удалить недавно клонированный vApp, я могу сделать следующее:

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

Надеюсь это поможет

person cosmincosmos    schedule 31.07.2015