• 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上使用,具体下载链接见后面。

    安装

    VMware官网下载,下载之前需要先注册账号,下载链接如下:

    https://my.vmware.com/cn/web/vmware/details?downloadGroup=OVFTOOL410&productId=491

    以ubantu为例:

    #下载下来之后,直接sh 运行即可:
    root@ubuntu:~# sh VMware-ovftool-4.1.0-2459827-lin.x86_64.bundle

    centos详细安装过程:

    1、将光盘挂载到系统/mnt目录下。
    
    [root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt
    
    2、将VMware Tools安装包“VMwareTools-9.10.0-2476743.tar.gz”复制到/root目录下
    
    [root@localhost ~]# cp /mnt/cdrom/VMwareTools-9.10.0-2476743.tar.gz /root  
    
    3、将文件解压,解压后的目录为“vmware-tools-distrib”
    
    [root@localhost ~]# tar -xzf VMwareTools-9.10.0-2476743.tar.gz
    
    4、安装程序,位于vmware-tools-distrib的目录,进入到该目录执行安装程序
    
    [root@localhost ~]# cd vmware-tools-distrib
    
    [root@localhost vmware-tools-distrib]# ./vmware-install.pl
    
    如果出现错误“-bash: ./vmware-install.pl: /usr/bin/per: bad interpreter: No such file or directory”表明未安装语言环境,安装程序是perl语言,需要安装perl环境。
    
    [root@localhost vmware-tools-distrib]# yum -y install perl
    
    perl安装完成之后,再执行/vmware-install.pl安装,根据提示应答安装(基本一路回车)。
    5、其它问题:在安装vmware tool的过程中,出现如下提示:
    
    What is the location of the "ifconfig" program on your machine?
    
    此处回车不行,安装程序检测系统有没有“ifconfig”命令工具,VMware Tools 对网络的管理需要该工具,可以输入“yes”跳过检查,继续进行安装。
    
    Yum安装ifconfig(建议在安装VMware Tools 之前安装好):
    [root@localhost vmware-tools-distrib]#  yum install net-tools
    
    6、如需卸载VMware Tools,输入/usr/bin/vmware-uninstall-tools.pl即可。
    

      

    使用

    OVA/OVF模板部署

    ovftool安装完即可用,其userguide文档里提供了很多可选参数,下面是我实际使用过程中用的一个语法,基本包含了可能会用到的几个参数:

    ova文件导入到 Vcente#将ova文件导入到 Vcenter

    ovftool --X:logLevel=verbose 
    --X:logFile=/root/deploy.log 
    --noSSLVerify --acceptAllEulas 
    -dm=thin -vf=Templates 
    -ds=POD01-VOL 
    /data/template/centos/CentOS6.5-64bit.ova 
    "vi://username:password@Vcenter/host/Host_Name/Host_import_name"
    
    参数详解:
    --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文件的位置;及需要导入的voa镜像模板
    pod01-vcenter是vcenter的名称;
    POD01(TEST-POD)是数据中心的名称;
    host后面接模板部署目标host位置,CLU01代表集群,pod1-clu01-h001.jx.local是集群下的一台宿主机;
    需要注意的是,这里的dns要设置好,或者也可用ip地址代替,
    例如:
    vi://username:password@192.168.1.1/?ip=192.168.100.1'
    192.168.1.1是vcenter的地址,192.168.100.1是目标宿主机的ip地址
    这里跟vcenter的连接也可以用http的形式,具体详见官方文档。
    
    
    注意:
    如果ova/ovf模板网卡里带portgroup
    一块网卡用参数:-nw或者--network后跟目标网络;
    多个网卡可以用--net指定源和目标portgroup,
    格式类似--net:source-portgroup=target-portgroup:
    
    例如:
    --net:vlan10-pod01-Test-Private=vlan11-pod01-Test-Private
    多个网卡使用多个--net指定。
    

      

    Vcenter导出ova文件 

    #导出ova模板文件
    ovftool -o 
    --powerOffSource 
    --acceptAllEulas 
    --machineOutput 
    --X:logLevel=verbose 
    --X:logFile=log.log 
    --noSSLVerify 
    "vi://username:password@vcenter/datecenter /vm/vmName" /root/vmName.ova
    
    参数解释 -o(--overwrite):如果导出的文件名已存在,强制重写; --powerOffSource:确保VM在被导出之前处于关机的状态; --machineOutput:以机器可读的格式输出ovftool的信息; 注意: 另外需要注意的一点是ovftool导出的文件权限问题,默认是600,建议改成644。 #跨vcenter版本时导出需添加参数--noNvramFile 

    官方文档

    以下是目前的官方文档链接:

    https://www.vmware.com/support/developer/ovf/ovf410/ovftool-410_userguide.pdf

    补充说明

    批量从vcenter导出脚本

    #/bin//bash
    for i  in `cat /data/gms/bash/1.txt`
    do
    ovftool -o --powerOffSource --acceptAllEulas --machineOutput --X:logLevel=verbose --X:logFile=/data/gms/log/$i.log --noSSLVerify "vi://username:password@pod01-vcenter.vsphere.local/POD01(MyDC)/host/SystemTemplates/$i" /data/gms/$i.ova
    done

    批量将模板导入vcenter

    #!/bin/bash
    filename=`find /data/gms/ -name *.ova`
    # find all ova template
    for ova in $filename
    do
    /usr/bin/ovftool --X:logLevel=verbose --X:logFile=/root/ovflog-`date +%Y%m%d`  --noSSLVerify --acceptAllEulas -dm=thin -vf=Templates -ds=POD1-Template `echo $ova` 'vi://username:password@MyVC/POD01(MyDC)/host/CLU01/pod1-clu01-h001.jx.local'
    continue
    done
    

      

  • 相关阅读:
    希腊字母大全
    SQL 等值连接(内连接)、自然连接(Out join,Left join,Right join)的区别
    JDK11 JAVA11下载安装与快速配置环境变量教程
    “由爱故生忧,由爱故生怖。若离于爱者,无忧亦无怖”
    How to use special characters in XML?
    Crow’s Foot Notation
    How do I unmute my Lenovo laptop?
    Nginx学习笔记--001-Nginx快速搭建
    Nginx 相关介绍
    java使用httpclient封装post请求和get的请求
  • 原文地址:https://www.cnblogs.com/Gmiaomiao/p/13444210.html
Copyright © 2020-2023  润新知