烂泥:vcenter通过模板部署vm
本文由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的更多相关文章
- MVC5模板部署到mono
VS2013中的MVC5模板部署到mono上的艰辛历程 2014-10-27 09:30 by FuzhePan, 3954 阅读, 46 评论, 收藏, 编辑 部署环境:CentOS7 + Mono ...
- Ansible_使用jinja2模板部署自定义文件
一.jinja2简介 1.jinja2模板 1️⃣:Ansible将jinja2模板系统用于模板文件,Ansible还使用jinja2语法来引用playbook中的变量 2️⃣:变量和逻辑表达式置于标 ...
- 脚本两则--用于快速部署HADOOP,SPARK这些(特别是VM虚拟机模板部署出来的)。。
感觉可能只是适合我自己的部署习惯吧,且只针对CENTOS6及以下版本,以后有时间,可能还是要改进.. 1,从VM的模块产生的虚拟机,如何快速搞定网络配置? #!/bin/bash #usage:./i ...
- 利用模板在RM里部署VM
Refer to: https://www.azure.cn/documentation/articles/virtual-machines-windows-ps-template/ 过程中遇到的几个 ...
- 小脚本一则---CDH的批量部署中,如果是从ESXI的VCENTER的模板生成的虚拟机,如何快速搞定网络网络卡配置?
当然,在作模板的过程中,我们除了要定义好SELINUX,IPTABLES之后, HOSTS文件维护,用ZOOKEEPER还是RSYNC实现? 都要在前期好好规划.. 脚本如下,一般改成自己的就可以用. ...
- 使用ARM模板部署自动扩展的Linux VMSS(1)
在Azure之前的ASM版本或者经典模式中,用户使用Azure Website,Azure Cloud Service等PAAS服务,可以实现一定程度上的自动扩展(auto scaling),但有着诸 ...
- vSphere SDK for Java - 从模板部署虚拟机并配置IP地址
vSphere for Java类库:vijava 虚拟机配置类 package com.vmware.vcenter_event.VirtualMachine; import com.vmwa ...
- VS2013中的MVC5模板部署到mono上的艰辛历程
部署环境:CentOS7 + Mono 3.10 + Jexus 5.6 在Xamarin.Studio创建的asp.net项目,部署过程非常顺利,没有遇到什么问题:但在VS2013中创建的asp.n ...
- 烂泥:使KVM显示VM的IP地址及主机名
本文由秀依林枫提供友情赞助,首发于烂泥行天下. KVM虚拟化学习已经有一段时间了,现在虚拟化软件比较多,对比了下目前使用比较多的VMware Vsphere.发现在不进入VM系统的情况下,Vspher ...
随机推荐
- 第 20 章 CSS3 前缀和 rem
学习要点: 1.CSS3 前缀 2.长度单位 rem 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 在发展中实行标准化的一些问题,重点探讨 CSS3 中新属性前缀问题和新的单位 rem. 一 ...
- 【USACO】DP动态规划小测(一)
{20160927 19:30~21:30} 总分400分,我113.33,稳稳地垫底了......(十分呼应我上面的博客名,hhh~)过了这么多天我才打完所有代码,废话我也就不多说了.不过,虽然时间 ...
- spring的使用《一》
在前边的文章中说明了,如何搭建一个spring的开发环境,简单回顾下就是把spring的jar包导入工程中,如果是在javaWeb项目中是放在lib目录下,然后在web.xml文件中进行配置,配置sp ...
- c语言语系的命名风格和java系命名风格
c语言系的命名风格:单词之间使用下划线分隔.如上图. java语言是另外一个系,javascript属于java语系(当年就是想借助java的名气所以命名javascript).java语系是驼峰式命 ...
- Java空白final
Java 1.1允许我们创建"空白final",它们属于一些特殊的字段.尽管被申明为final,但却未得到一个初始值. 无论在哪种情况下,空白final都必须在实际使用前得到正确的 ...
- Redis学习笔记2-使用 Redis 作为 LRU 缓存
当 Redis 作为缓存使用时,当你添加新的数据时,有时候很方便使 Redis 自动回收老的数据.LRU 实际上是被唯一支持的数据移除方法.Redis 的 maxmemory 指令,用于限制内存使用到 ...
- 04Mybatis_搭建Mybatis的开发环境
第一步:导jia包: 1.导入Mybatis的核心jia包:
- 一款经典的jQuery kxbdMarquee 无缝滚动插件
<marquee> 曾是 IE 下独有的一个走马灯效果的标签,其他浏览器并不兼容,于是出现了使用 JavaScript 来模拟该效果的插件. 版本: jQuery v1.3.2+ 在线实例 ...
- bootstrap源码分析之scrollspy(滚动侦听)
源码文件: Scrollspy.js 实现功能 1.当滚动区域内设置的hashkey距离顶点到有效位置时,就关联设置其导航上的指定项2.导航必须是 .nav > li > a 结构,并且a ...
- (转)JavaScript一:为什么学习JavaScript?
Web程序不论是B/S(Browser/Server)还是C/S(Client/Server)架构,分为客户端程序与服务器端程序两种.ASP.NET是开发服务器端程序的强大工具,但是有时候为了降低服务 ...