本文由ilanniweb提供友情赞助,首发于烂泥行天下

想要获得更多的文章,可以关注我的微信ilanniweb。

前一篇文章我们介绍了有关vcenter5.5的安装与配置,这篇文章我们再来介绍下,如何通过vcenter的vm模板来部署虚拟机以及在部署过程遇到问题的解决方法。

一、生成VM模板

要生成vm模板,我们首先要安装好一台虚拟机,在此我安装好了一台centos6.6的机器。如下:

要把一台vm做成模板,需要在vm关机状态下进行操作。如下:

选择虚拟机—“模板”—“转换成模板”。

通过以上两张图的对比,我们可以发现vm在做成vm模板前后的图标是不一样的。这样我们的vm模板就已经生成了。

注意:虚拟机和vm模板之间的转换是非常简单的,两者可以互相转换。

二、vcenter内部部署VM

现在有了vm的模板,如果我们想在此vcenter上快速部署vm的话,我们就可以直接使用此vm模板进行部署了。如下:

注意:以下除非很重要的步骤,否则不会加文字说明的。

注意:如果想自定义vm的话,我们可以在此步骤进行相关的配置。

到此一台新的vm就已经部署成功了,当然该新vm其他的相关参数,还需要我们进行调整。在此我们就不进行介绍了。

三、跨vcenter部署

有时候我们为了测试一台新的vm,需要把该vm导入到其它的vcenter中。这就属于跨vcenter部署vm。

要跨vcenter部署vm,需要我们进行以下操作。

3.1 导出VM模板

首先我们要把vm作为一个模板导出,选中要导出的vm模板。当然导出的不一定是vm模板,也可以是一台vm。

在此我们使用的vm模板,如下:

“文件”—“导出”—“导出OVF模板”:

注意:上图中有关导出文件格式需要我们注意下,我们可以选择单个文件ova格式和文件夹ovf格式。

其中单个文件ova格式其实是ovf格式的一个压缩文件,我们可以通过tar命令或者7zip解压ova格式文件得到ovf格式文件。

因为ova文件携带比较方便(就一个文件),所以在此我们选择导出的是ova格式文件。

到此vm的模板我们已经导出来了。

3.2 解压VM模板文件

为什么要解压vm模板呢?是因为如果不修改vm模板的话,我们在导入vm模板是会提示找不到未能部署OVF包:找不到文件之类的错误信息。如下:

要修改vm模板,我们就要解压vm模板文件vm-mould.ova。ova文件解压后,我们可以得到三个文件xxx.vmdk, xxx.ovf, xxx.mf。

ova文件的解压,我们可以通过7zip、tar两种方法。下面分别介绍下。

3.2.1 tar解压

要使用tar命令进行解压,我们可以把ova文件上传到Linux上,然后在进行解压。如下:

tar –xf test-modle.ova

通过上图,我们可以看到解压后得到xxx.ovf、xxx.vmdk、xxx.mf三个文件。

其中ovf文件表示vm的相关配置,比如内存大小、硬盘大小、网络连接方式等等。此文件类似kvm虚拟化中的xml配置文件。

vmdk文件是vm的硬盘文件。

mf文件主要作用是为验证vm的相关配置是否被恶意篡改。

当然,如果不想上传到Linux系统上进行解压,我们也可以下载tar命令的windows版本。下载连接如下:

http://gnuwin32.sourceforge.net/packages/gtar.htm

下载安装完毕后,ar命令还是不能直接使用的,需要我们手工把tar命令加入到系统的环境变量中。如下:

加入系统变量后,我们再执行解压命令。如下:

tar –xf test-modle.ova

3.2.2 7zip解压

要使用7zip解压,我们必须是在windows平台下的。安装7zip软件,然后进行解压。如下:

通过上图,我们可以看到ova文件解压后,确实得到三个文件test-modle.ovf、test-modle-disk1.vmdk、test-modle.mf。

3.3 修改VM模板文件

修改vm模板文件,其实只需要我们修改ovf文件即可。

在Linux系统下,修改方式如下:

vim test-modle.ovf +96

我们只需要把ovf文件的96行的vmware.cdrom.iso修改为vmware.cdrom.remotepassthrough。

在windows系统下,修改方式如下:

修改之前。

修改之后。

3.4 验证VM模板文件的sha1值

vm文件修改完毕后,我们还要验证模板文件的sha1值,否则我们在导入vm模板时也是会报错的。

上述我们修改了ovf文件,那么我们只需要验证该文件就行。如果我们还修改了vmdk文件,那么我们也需要验证该文件。

验证完毕后,把得到的sha1值,写到mf文件中即可。注意:mf文件中原来是有ovf和vdk文件的sha1值得。

根据验证平台的不同,我们分别介绍Linux和Windows下的验证方式。

3.4.1 Linux下验证

Linux下的验证比较方便直接使用sha1sum命令进行,然后把验证的ovf文件sha1值写到mf文件中即可。如下:

sha1sum test-modle.ovf

cat test-modle.mf

3.4.2 Windows下验证

windows平台下的验证,我们可以使用微软提供的用于计算文件的MD5和SHA1散列值的工具fciv。文件校验和完整性验证程序fciv是一个命令提示符工具计算并验证文件的加密哈希值。fciv可计算 SHA1或MD5加密哈希值。这些值可以是屏幕上显示或保存为以后使用和验证XML文件数据库。

fciv常用示例如下:

fciv d:\mydir\myfile.exe(计算D盘mydir文件夹下myfile.exe的md5值)

fciv d:\mydir\myfile.exe -sha1(计算D盘mydir文件夹下myfile.exe的sha1值)

下载fciv运行后,解压缩,会提示你放在那个文件夹下。解压的文件夹只包含两个文件fciv.exe、readme.txt。

现在我们开始使用fciv命令验证ovf的sha1值,如下:

fciv test-modle.ovf -sha1

验证后把得到的sha1值写到mf文件中,如下:

3.5 生成ova文件

vm模板文件验证完毕后,我们现在要把ovf、vmdk、mf文件打包成ova文件。

要打包成ova文件,我们目前需要使用tar命令进行打包。如下:

tar -cf test-modle.ova test-modle.ovf test-modle-disk1.vmdk test-modle.mf

注意:上述tar打包命令文件的顺序一定要按照上述格式进行,否则在导入该vm模板时,vcenter会报错。

ovf压缩包对文件顺序的要求是:ovf文件必须是第一个,然后是虚拟机镜像文件(如vmdk),接着是mf文件,再接下来是其他的可选文件(如证书等)。

有关ovf文件的打包,可以参考这个连接:

http://mingjin.thoughtworkers.org/?cat=24

3.6 导入VM模板

vm模版文件修改完毕后,我们选择把该模板导入到新的vcenter中。如下:

到此vm的模板已经被导入进去了。

四、有关一个esxi被多个vc连接

有时候在使用vcenter时,会碰到这样的问题一个esxi会被其他的vcenter使用。此时我们使用的vcenter会显示该esxi节点处于离线状态。如下:

如果要重新连接该esxi的话,进行操作如下:

烂泥:vcenter通过模板部署vm的更多相关文章

  1. MVC5模板部署到mono

    VS2013中的MVC5模板部署到mono上的艰辛历程 2014-10-27 09:30 by FuzhePan, 3954 阅读, 46 评论, 收藏, 编辑 部署环境:CentOS7 + Mono ...

  2. Ansible_使用jinja2模板部署自定义文件

    一.jinja2简介 1.jinja2模板 1️⃣:Ansible将jinja2模板系统用于模板文件,Ansible还使用jinja2语法来引用playbook中的变量 2️⃣:变量和逻辑表达式置于标 ...

  3. 脚本两则--用于快速部署HADOOP,SPARK这些(特别是VM虚拟机模板部署出来的)。。

    感觉可能只是适合我自己的部署习惯吧,且只针对CENTOS6及以下版本,以后有时间,可能还是要改进.. 1,从VM的模块产生的虚拟机,如何快速搞定网络配置? #!/bin/bash #usage:./i ...

  4. 利用模板在RM里部署VM

    Refer to: https://www.azure.cn/documentation/articles/virtual-machines-windows-ps-template/ 过程中遇到的几个 ...

  5. 小脚本一则---CDH的批量部署中,如果是从ESXI的VCENTER的模板生成的虚拟机,如何快速搞定网络网络卡配置?

    当然,在作模板的过程中,我们除了要定义好SELINUX,IPTABLES之后, HOSTS文件维护,用ZOOKEEPER还是RSYNC实现? 都要在前期好好规划.. 脚本如下,一般改成自己的就可以用. ...

  6. 使用ARM模板部署自动扩展的Linux VMSS(1)

    在Azure之前的ASM版本或者经典模式中,用户使用Azure Website,Azure Cloud Service等PAAS服务,可以实现一定程度上的自动扩展(auto scaling),但有着诸 ...

  7. vSphere SDK for Java - 从模板部署虚拟机并配置IP地址

    vSphere for Java类库:vijava    虚拟机配置类 package com.vmware.vcenter_event.VirtualMachine; import com.vmwa ...

  8. VS2013中的MVC5模板部署到mono上的艰辛历程

    部署环境:CentOS7 + Mono 3.10 + Jexus 5.6 在Xamarin.Studio创建的asp.net项目,部署过程非常顺利,没有遇到什么问题:但在VS2013中创建的asp.n ...

  9. 烂泥:使KVM显示VM的IP地址及主机名

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. KVM虚拟化学习已经有一段时间了,现在虚拟化软件比较多,对比了下目前使用比较多的VMware Vsphere.发现在不进入VM系统的情况下,Vspher ...

随机推荐

  1. 项目总结笔记系列 Autonomy IDOL Server KT Session1

    在说上面这个图之前,先说一下背景知识. Autonomy地址: http://www.autonomy.com.cn http://www.autonomy.com.cn/content/home/i ...

  2. Java--CyclicBarrier同步屏障原理,使用

    package com; import java.util.Map; import java.util.concurrent.BrokenBarrierException; import java.u ...

  3. node.js处理post请求

    1.html 2.app.js var http = require('http') var qs = require('querystring') /** * 路由控制的功能 * @param pa ...

  4. 网上图书商城2--Category模块

    sql CREATE TABLE `t_category` ( `cid` char(32) NOT NULL, `cname` varchar(50) DEFAULT NULL, `pid` cha ...

  5. Timeline Portfolio - 时间轴作品集效果

    这里分享一个超炫的时间轴展示作品集效果.设计师和前端开发人员可以借助这个效果来制作新颖的作品集和个人简历.时间轴专门用来呈现出年代的一系列事件.您可以把这种效果嵌入各种媒体,包括微博,视频和地图,并把 ...

  6. JavaScript中对象的比较

    Javascript中有'=='和'==='两种相等比较,后者是全等,会判断数据类型,前者是相等,在比较时,会发生隐式转换. 如果将两个对象做'=='比较,结果会如何呢? 比如有如下两个对象: var ...

  7. DOM中的事件处理概览与原理的全面剖析

    事件是一种异步编程的实现方式,本质上是程序各个组成部分之间的通信,DOM支持大量的事件: 本文通过这几点向大家详细解析事件处理的基本原理:事件类型.事件目标.事件处理程序.事件对象.事件传播 最后再向 ...

  8. JavaScript实战(带收放动画效果的导航菜单)

    虽然有很多插件可用,但为了共同提高,我做了一系列JavaScript实战系列的实例,分享给大家,前辈们若有好的建议,请务必指出,免得误人子弟啊! ( 原创文章,转摘请注明:苏福:http://www. ...

  9. 【原】iOS动态性(二):运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)

    OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是私有方法以及私有属性都是可以动 ...

  10. 颜色渐变的JS代码

    今天做组织机构,要分级别显示颜色,自己计算半天也没算出颜色渐变的方法,出来总是花里胡哨的难看的不要不要的,所以查了一下,找到一个js代码,试了试,很完美哦! <!DOCTYPE html> ...