天天看點

ovftool自動部署/導出ova/ovf模闆

一、簡介  

OVF(Open Virtualization Format)是多家虛拟化廠商和硬體廠商共同定義的一個虛拟裝置的規範,ovf格式的虛拟裝置(其實就是一些檔案)可以被多家虛拟化軟體裝置并import到虛拟化環境,比如VMware、XenServer、VirtualBox等等。OVF一般有幾個部分組成,分别是ovf檔案、mf檔案、cert檔案、vmdk檔案和iso檔案。OVF(Open Virtualization Format:開放虛拟化格式 )和OVA(Open Virtualization Appliance:開放虛拟化裝置),兩者包含所有用于部署虛拟機的必要資訊。現在很多軟體廠商經常将一個應用直接打包成ovf或ova格式的虛拟裝置提供給使用者導入到虛拟化環境,比如VMware、Riverbed等等很多公司都有産品通過這種方式釋出,這友善了使用者部署。

   VMware提供ovf、ova模闆的部署和導出功能,在手動部署的時候有時會出現無法部署或者部署過程中出錯的情況,尤其在大檔案部署的時候突然中斷很是讓人頭疼,這裡介紹一個工具:ovftool。

 官網提供多個版本的下載下傳,建議在linux和mac上使用,具體下載下傳連結見後面。

二、安裝

已linux 版本為例:

  下載下傳下來之後,直接sh 運作即可:

<code>root@ubuntu:~</code><code># sh VMware-ovftool-4.1.0-2459827-lin.x86_64.bundle</code>

三、OVA、OVF模闆部署

  ovftool安裝完即可用,其userguide文檔裡提供了很多可選參數,下面是我實際使用過程中用的一個文法,基本包含了可能會用到的幾個參數::

<code>root@ubuntu:~</code><code># ovftool --X:logLevel=verbose \ </code>

<code>--X:logFile=</code><code>/root/deploy_log-</code><code>`</code><code>date</code> <code>+%Y%m%d` \</code>

<code> </code><code>--noSSLVerify --acceptAllEulas \</code>

<code> </code><code>-dm=thin  -vf=Templates \</code>

<code> </code><code>-ds=POD01-VOL </code>

<code> </code><code>/data/template/centos/MyTest-CentOS6</code><code>.5-64bit-V1.ova \</code>

<code> </code><code>'vi://username:password@pod01-vcenter/POD01(TEST-POD)/host/POD01-CLU01/pod01-clu01-h001.cdscloud.local'</code>

如果ova/ovf模闆網卡裡帶portgroup,一塊網卡用參數:-nw或者--network後跟目标網絡;

多個網卡可以用--net指定源和目标portgroup,格式類似--net:source-portgroup=target-portgroup:

例如:

--net:vlan10-pod01-Test-Private=vlan11-pod01-Test-Private

多個網卡使用多個--net指定。

參數詳解:

--X:logLevel:定義log的級别;

--X:logFile:定義log檔案位置,以日期的格式命名;

--noSSLVerify:跳過vSphere連接配接的SSL認證;

--acceptAllEulas:接受所有使用者的licenses;

-dm(--diskMode): 磁盤類型,一般選用thin置備,如果不加此參數,預設硬碟厚置備類型;

-vf(--vmFolder):模闆部署的目标目錄(即檔案夾),我這裡假設要部署到Templates目錄下面;

-ds(--datastore):模闆部署的目标存儲位置

vi:// : 全稱”VMware Infrastructure“,用來和資料中心通信的指令行選項,最早是ESX 3版本的一個術語。格式:”username:password@vcenter名稱/資料中心名稱/host/指定host“;也可以隻指定到cluster。

其中:

/data/template/centos/MyTest-CentOS6.5-64bit-V1.ova是ova檔案的位置;

pod01-vcenter是vcenter的名稱;

POD01(TEST-POD)是資料中心的名稱;

host後面接模闆部署目标host位置,CLU01代表叢集,pod1-clu01-h001.jx.local是叢集下的一台主控端;

需要注意的是,這裡的dns要設定好,或者也可用ip位址代替,比如:

<code>vi</code><code>:</code><code>//username</code><code>:[email protected]/?ip=192.168.100.1'</code>

192.168.1.1是vcenter的位址,192.168.100.1是目标主控端的ip位址;

這裡跟vcenter的連接配接也可以用http的形式,具體詳見官方文檔。

四、模闆導出

導出成ova/ovf模闆的常用指令:

<code>ovftool -o \</code>

<code>--powerOffSource \</code>

<code> </code><code>--acceptAllEulas \</code>

<code> </code><code>--machineOutput \</code>

<code> </code><code>--X:logLevel=verbose \</code>

<code> </code><code>--X:logFile=log.log  \</code>

<code> </code><code>--noSSLVerify  \</code>

<code> </code><code>"vi://username:password@pod01-vcenter/POD01(TEST-POD)/vm/MyTestVM"</code> <code>/root/MyTestVM</code><code>.ova</code>

參數介紹:

-o(--overwrite):如果導出的檔案名已存在,強制重寫;

--powerOffSource:確定VM在被導出之前處于關機的狀态

--machineOutput:以機器可讀的格式輸出ovftool的資訊;

另外需要注意的一點是ovftool導出的檔案權限問題,預設是600,建議改成644。

五、自動部署

  如果有多個ova檔案,自動部署的時候簡單點的加個for循環用shell腳本即可,例如:

<code>#!/bin/bash</code>

<code>filename=`</code><code>find</code> <code>/data/template/</code> <code>-name *.ova`</code>

<code># find all ova template</code>

<code>for</code> <code>ova </code><code>in</code> <code>$filename</code>

<code>do</code>

<code>/usr/bin/ovftool</code> <code>--X:logLevel=verbose --X:logFile=</code><code>/root/ovflog-</code><code>`</code><code>date</code> <code>+%Y%m%d`  --noSSLVerify --acceptAllEulas -dm=thin -vf=Templates -ds=POD1-Template `</code><code>echo</code> <code>$ova` </code><code>'vi://username:password*@MyVC/POD1(MyDC)/host/CLU01/pod1-clu01-h001.jx.local'</code>

<code>continue</code>

<code>done</code>

以下是目前的官方文檔連結:

<a href="https://www.vmware.com/support/developer/ovf/ovf410/ovftool-410_userguide.pdf" target="_blank">https://www.vmware.com/support/developer/ovf/ovf410/ovftool-410_userguide.pdf</a>

另外ovftool可在VMware官網下載下傳,下載下傳之前需要先新增賬號,下載下傳連結如下:

<a href="https://my.vmware.com/cn/web/vmware/details?downloadGroup=OVFTOOL410&amp;productId=491" target="_blank">https://my.vmware.com/cn/web/vmware/details?downloadGroup=OVFTOOL410&amp;productId=491</a>

      本文轉自Jx戰壕  51CTO部落格,原文連結http://blog.51cto.com/xujpxm/1767701:,如需轉載請自行聯系原作者

繼續閱讀