【问题标题】:Deploying an OVF/OVA fileDeploying an OVF/OVA file
【发布时间】:2015-10-17 16:42:45
【问题描述】:

将 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:jim@141.192.91.124/nrtms-training/host/141.192.91.9/


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

工作正常,但它太慢了。 OVF 文件由一个 vApp 和一个 VM 组成。全部完成后,vApp 将包含大约 9 个虚拟机。 部署当前仅包含一个 VM 的 vApp 大约需要 20 分钟。我无法想象部署一个包含 9 个虚拟机的 vApp 需要多长时间。 这是一种使其更快的方法吗? 干杯。

【问题讨论】:

    标签: esxi ovf


    【解决方案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
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 2014-05-21
      • 2022-12-02
      • 1970-01-01
      • 2012-07-16
      • 2022-12-27
      • 2013-07-10
      相关资源
      最近更新 更多