vSphere部署系列之10——虚拟机模板和规范

简介:

vSphere部署系列之10——虚拟机模板和规范


在前面的博文章节中,已搭建了群集,并启用了HA和DRS,但还没有划分资源池,这种情况已经可以应付实际生产环境。资源池的创建和配置比较简单、难点在对配额的理解和按需划分。有兴趣的朋友可以网上查阅相关资料,这里暂不作研究。


vCenter提供了模板功能,可把一台已部署好的虚拟机转换为模板,然后以此模板为镜像批量部署虚拟机。这一节是关于虚拟机模板及其管理规范方面的操作。


实验环境总体规划,请见前面的博文《vSphere部署系列之03——实验环境总体规划》


 wKiom1fLhv3TnFx2AALXJy2rt0w496.png-wh_50

▲总体规划网络拓扑图


一、前期工作


在使用模板之前,需要先安装"样板"虚拟机,并且将该虚拟机转化(或克隆)成"模板",以后再需要此类的虚拟机时,以此为模板派生或克隆出多台虚拟机。


本案在群集中创建基于Windows Server 2008R2系统和 CentOS 6.5系统的两个虚拟机,名字分别为Win2008R2-Temp和CentOS-Temp。


在系统中进行一些常规性软件部署(对于Windows Server 2008R2,还需要激活系统、更新补丁),并安装好VMware Tools。(VMware Tools的安装很简单,具体详见《vSphere部署系列之05——虚拟机的创建和设置》)



二、将虚拟机转换成模板 


本案是在vSpherer Client连接vCenter Server的主界面中进行。


将虚拟机转换成模板,操作很简单。在vSpherer Client中,定位到要转换成模板的虚拟机,用鼠标右键单击,从弹出的快捷菜单中选择"转换成模板"即可。


注:将虚拟机“转换成模板”的操作,虚拟机不保留、只能作模板使用,若是选择“克隆为模板”,则在虚拟机的基础上,克隆出与此虚拟机"完全一样"的虚拟机为模板,原虚拟机仍然可以使用。


 wKiom1fLh9WRJo8XAAErK2nQrB0741.png-wh_50

▲将虚拟机Win2008R2-Temp转换为模板


*按同样步骤,也将CentOS-Temp转换成模板。


虚拟机转换成模板后,在“清单->主机和群集”左则列表中不显示,可选择群集然后在右则“虚拟机”页面中查看。也可切换到“清单->虚拟机和模板”中查看。


 wKioL1fLh-2wf5_vAAC9gvDpGtg546.png-wh_50

▲清单->主机和群集,虚拟机分页中查看模板


 wKioL1fLiADS1ngcAAC7jlTmFYU232.png-wh_50

▲清单->虚拟机和模板,在左则列表中查看模板,右则摘要中可查看模板信息

注:模板与虚拟机的图标是不同的



二、从模板部署虚拟机,不自定义方式


通过模板部署虚拟机,有不自定义方式和自定义方式两种。前者比后者简单很多,后者需要创建并应用自定义规范。这里以模板Win2008R2-Temp为例,先介绍不自定义方式的步骤。


在“清单->虚拟机和模板”中,定位到模板Win2008R2-Temp,用鼠标右键单击,从弹出的快捷菜单中选择“从该模板部署虚拟机”,将会弹出“部署模板”对话框。


 wKioL1fLiIbzLDU-AADTJdkz5Hw338.png-wh_50

▲从模板Win2008R2-Temp部署虚拟机

注:“转换成虚拟机”子菜单,可将模板重新转为虚拟机。当模板系统需要更改配置或是多安装某些软件时,可通过此方法实现。


 wKiom1fLiJnyYKx5AACiTuMLjnc425.png-wh_50

▲部署模板对话框,名称和位置设置,在这里为虚拟机命名、选择位置

这里只看到数据中心SQ-DataCenter,如果数据中心中有归类的文件夹,也是可见、可选的。


 wKioL1fLiJuCvltCAADIPrxK6NY432.png-wh_50

▲主机和群集设置,在此选择虚拟机将要驻留的主机

由于环境中配置了群集,这里要先选择群集 


 wKioL1fLiJzxhDU-AAChOTJFmQI480.png-wh_50

▲主机和群集设置,在此选择虚拟机将要驻留的主机

如果群集中有配置了资源池,还会有选择资源池的步骤。


 wKiom1fLiJ-xAlAPAADO4a4bSho630.png-wh_50

▲存储器设置,在此选择虚拟机将要使用的存储位置,这里选择共享存储SQST01-244001

虚拟机磁盘格式设置为默认的与格式相同。


 wKiom1fLiKCjsA4KAAClP4lp_dI671.png-wh_50

▲自定义设置, 在此选择是否对虚拟机自定义,这一步很关键,这里选择“不自定义”,

如果选择“使用现有自定义规范自定义”,则需要使用相关的规范。后文会讲述。

“创建后打开此虚拟机的电源”默认是不勾选的,这里手动勾选。


 wKioL1fLiKLCwgbPAAEF8tqZF1A936.png-wh_50

▲虚拟机设置摘要,在此单击“完成”按键,即完成该模板部署操作

注,此处不建议选择“编辑虚拟机硬件”,可在虚拟机部署完毕后再修改


模板部署完成后,在任务栏中,可看到虚拟机被创建的进度。虚拟机创建完成后,在“清单->主机和群集”和“清单->虚拟机和模板”的列表中可见。


通过以上步骤部署的虚拟机跟模板一模一样,有相同的IP、主机名及配置,对于Windows操作系统而言,其SID也是一样。这在网络中,尤其有域环境中,会出现问题。需要进系统使用sysprep对系统重新封装。在批量部署的情况下,工作量还是挺大的。


有一个工具可以帮助解决这些问题,那就是自定义规范管理器。



三、创建用于自定义部署的自定义规范


vCenter可使用sysprep程序对Windows Server等产品进行后期定制,其底层的原理与Widows系统里的重封装是一样的,只是把sysprep重新封装的准备工作集成到vCenter中,并且是在通过模板部署虚拟机时进行,而不是在制作模板前进行。


下面通过对Windows Server 2008 R2 SP1行定制,介绍"定制规范"的使用。


1、把操作系统对应的sysprep文件拷贝到vCenter服务器特定的目录下


对于Windows Server 2008 R2 SP1而言,sysprep文件在系统安装目录中可以找到,具体路径为C:/windows/sysyem32/sysprep,在运行窗口中运行sysprep命令,并按回车,即可进入C:/windows/sysyem32/目录。


本案中,由于 vCenter所在的系统(本案为虚拟机sqvcenter)就是Windows Server 2008 R2 SP1。直接登录该系统,将C:/windows/sysyem32/ 目录下的sysprep文件拷贝到C:/program Files/VMware/infrastructure/VirtualCenter Server/目录下(VirtualCenter Serve目录是vCenter安装时自动生成的)即可。


wKioL1fLibDDbF8lAABZoYmoEBU830.png-wh_50


如果模板为Windows Server 2003/2003R2的系统,sysprep文件,需要从系统镜像对/support/tooles/deploy.cab解压得到,然后通过远程操作,将其拷贝到

C:/program Files/VMware/infrastructure/VirtualCenter Server/目录下。


2、创建自定义规范


这项操作是在“自定义规范管事器”中进行。


 wKioL1fLiniTXwg5AAFqMB7EtO8198.png-wh_50

▲在“主页”中找到“自定义规范管理器”,单击进入


在自定义规范管事器中,可创建适用于Window Server和Linux操作系统的规范。


下面,创建一个适用于Winodws Server(包括2003/2008/2012等版本)系统的规范。


 wKiom1fLihny4d8TAADnPrEe1As727.png-wh_50

▲在“自定义规范管事器”中,右击,在弹出的菜单里选择“新建”,将会弹出“新建自定义规范”对话框。 


 wKiom1fLij_B7N6YAACOXypvHSU293.png-wh_50

▲“新建自定义规范”对话框,第一步是选择目标虚拟机操作系统和设备规范名称,

在“目标虚拟机操作系统”下拉列表框中有“Windows”和“Linux”两项,这里选择Windows,

规范名称需自行填写,为了便于识别,一般以“操作系统+业务类型”进行命名,这里填写为Win2008R2_SP1。也可填写更详细的描述。


 wKiom1fLikCgvmieAAB0eCW-pG4652.png-wh_50

▲注册信息设置


 wKioL1fLikHx2km8AACXUhhrNoM993.png-wh_50

▲计算机名称设置,选择“在部署向导中输入名称”


 wKioL1fLikKCNKiTAACJ8e67VPs591.png-wh_50

▲Windows许可证设置,本案模板是通过KMS激活了的,这里不需要设置产品密钥。


wKiom1fLikSDWZx5AAB6R6rhI20151.png-wh_50 

▲管理员密码设置,管理员密码可留空以保留原镜像虚拟机管理员密码,或指定一个新的密码


 wKiom1fLikXyhJmVAABy5Z_LhlU800.png-wh_50

▲时区设置


 wKioL1fLikazSTM0AAB0QgrZ_3k943.png-wh_50

▲登录时命令运行设置,保留为空


 wKioL1fLikfxWExmAAB93XK-Uaw505.png-wh_50

▲网络设置,选择“自定义设置”


 wKiom1fLikmxDziYAACUA_nn3aE021.png-wh_50

▲网络接口自定义设置,IP地址默认为DHCP获取方式,单击“…”属性按键,将弹出“网络属性”对话框


 wKioL1fLikqjl5rOAAB2qIhV5-c749.png-wh_50

▲网络属性对话框,在此设置子网掩码、网关和DNS等,单击“确定”按钮,返回网络接口自定义对话框


 wKiom1fLikyS6n3_AABodenOJZc773.png-wh_50

▲网络接口自定义设置,此时IP地址为“提示用户”方式


 wKiom1fLik7CqfsEAACDkjEUsM8667.png-wh_50

▲工作组或域设置,这里设置为本地工作组WORKGROUP


 wKioL1fLik_hHU01AAB1yAPZtdI603.png-wh_50

▲操作系统选项设置,这一项是为了生成新SID,一定要勾选


 wKiom1fLilGxmNXzAACk0vRr0sM161.png-wh_50

▲设置摘要,单击“完成”按钮以完成自定义规范。


*按类似的步骤,再创建适用于Linux系统的规范CentOS6.5_x64。

其中在“属性”的目标虚拟机操作系统一项中,选项Linux;

在“计算机名称”一项中需要设置域名,将其至为“localhost”,如下图所示;

“工作组或域”一项则没有,这三处跟Windows规范有所不同。


 wKioL1fLi17hH9MwAACd-LNzu7o952.png-wh_50

▲Linux规范中计算机名一项,将域名设置为“localhost”


规范创建完成后,会在自定义管理器中罗列。


 wKiom1fLi4rQtELTAACIgrEnvSs086.png-wh_50

新建的CentOS6.5_x64规范和Win2008R2_SP1规范



四、从模板部署虚拟机,使用自定义规范方式 


下面以Windows系统为例,通过使用自定义规范的方式,从模板Win2008R2-Temp部署虚拟机Win2k8_241.42。


在“清单->虚拟机和模板”中,定位到模板Win2008R2-Temp,用鼠标右键单击,从弹出的快捷菜单中选择“从该模板部署虚拟机”,将会弹出“部署模板”对话框。


前面的步骤与前面第二节中的是一样的,依次设置虚拟机名称、驻留的主机、存放的存储等,直到“客户机自定义”。


 wKioL1fLi8ej67hqAACp9543cPo043.png-wh_50

▲客户机自定义,这里选项“使用现在自定义规范自定义”并选择规范“Win2008R2_SP1”


 wKiom1fLi8iyrbUkAACWAPintOE521.png-wh_50

▲用户设置,在此设置NetBIOS名称(即系统主机名)和IP地址

因为在规范“Win2008R2_SP1”规定了NetBIOS名称为“在部署向导中输入名称”,IP地址为“当使用规范时,提示用户输入地址”方式。

这也是使用规范后, 唯一需要进行的手动设置的地方。其他设置交由规范自动处理。


 wKiom1fLi8nSCub3AAC7JJToHW0196.png-wh_50

▲虚拟机设置摘要,在此单击“完成”按键,即完成该模板部署操作

注,此处不建议选择“编辑虚拟机硬件”,可在虚拟机部署完毕后再修改


由于在“客户机自定义”步骤中,勾选了“创建后打开此虚拟机的电源”,该虚拟机创建完成后,会自行启动。首次启动后,系统会自动按已设定的规范进行配置,并更新SID,此过程不需要人为干预。


 wKiom1fLi9Kwm-T4AAFm-O04SUQ255.png-wh_50

▲虚拟机自动重装封装过程


打开该虚拟机控制台,观察访虚拟机的运行情况,可以看到,虚拟机先开机到登录界面,过大概10秒左右(此期间不需要人为操作),会自动启起,然后自动进行sysprep重新封装。直到系统再次重启到登录界面时,使用规范中设置的管理员密码进行登录即可。


 wKiom1fLi9rA6ysvAACnXXa6F3s550.png-wh_50

▲从Win2k8_241.42摘要中,可看到该虚拟机此时的IP地址和主机名


 wKioL1fLi9TypEU_AAD-zcadwtw193.png-wh_50

▲进入虚拟机系统,在cmd命令窗口中输入“whoami /user”,可查看本机的SID号


*按类似的操作,从CentOS-Temp模板部署虚拟机。



五、关于CentOS使用自定义规范方式 


在vSphere5.5环境中,在做了CentOS6.5 x64模板,并创建了linux自定义规范之后,在从CentOS6.5 x64模板部署虚拟机时,会出现不能使用自定义规范的情况。如下图所示。


 wKioL1fLjHWz-cPPAACvK6SmwHM622.png-wh_50

▲从CentOS6.5 x64模板部署虚拟机时,被提示不支持自定义客户机操作系统。



本案在操作过程中,也遇到这个问题。将CentOS-Temp模板重新转换成虚拟机,运行并查看,发现Perl默认已安装(网上很多资料说跟这个有关),VMTools已安装(当前vSphere5.5中最新的版本)并正常运行。但就是不能使用自定义规范。有资料说VMware早已不支持CentOS的自定义规范,但在官方资料未到明确的说法。


后经排查,发现以上情况与模板/虚拟机的“客户机操作系统”性质有关。笔者初时在创建CentOS-Temp虚拟机时,“客户机操作系统”选择的是“CentOS4/5/6 (64位)。”后来重新建虚拟机,将“客户机操作系统”性质一项设置为“Red Hat Enterprise Linux 6 (64位)”,虚拟机配置完成后,再转换成模块,便可以从自定义规范部署。

 

wKiom1fM4Tmi_Z8LAADNIrUthNY542.png-wh_50

▲CentOS-Temp模板的摘要,

从中可以看到该模板的客户机操作系统属性为“Red Hat Enterprise Linux 6 (64位)”。


 wKioL1fLjIuidZ3bAAEL1U-3e_Q783.png-wh_50

▲从CentOS-Temp模板部署虚拟机,这里可选择之前创建的CentOS6.5_x64规范。



在常规的按“不自定义”方式部署的虚拟机时,会出现因虚拟机MAC地址(在虚拟机属性中可查看)与虚拟机客户系统MAC地址(在ifcfg-eth0配置文件中可查看)不一致而出现虚拟机无法上网的情况。需要在客户系统的配置文件ifcfg-eth0中修改MAC,使之与虚拟机的MAC地址一致,并重启系统(需要连接重启两次),才能连通网络。


在这里使用自定义规范后,虚拟机客户系统内会自动生成一个ifcfg-eth1(即多了一个网卡eth1)配置文件,该配置文件的MAC(ifcfg-eth1中没有列出来)与虚拟机实际MAC地址是一致的,且IP为创建虚拟机时在“用户设置”一步中指定的,系统通过该eth1上网。


但在由于模板中为eth0是指定了网关,虚拟机客户系统在创建eth1时无法为其指定网关(从上图可看出,缺少GATEWAY字段),因而出现网络只局限在本地VLAN网段——本案中VLAN241是可以pin通baidu.com的,但此时的CentOS虚拟机ping baidu.com被提示找不到主机。


解决的方法是,将ifcfg-eth0中的GATEWAY字段删除,并在ifcfg-eth1中添加GATEWAY字段和具体网关地址,本案为“GATEWAY=10.1.241.254”,修改完成后,重启network服务后,ping baidu.com有返回。


wKioL1fg4jeB8xDtAACak9C9caI457.png-wh_50

▲ifcfg-eth0配置内容


wKiom1fg4kWjfVx9AAB5UtCR5i8336.png-wh_50

▲ifcfg-eth1配置内容


wKioL1fg4lCziNQmAADhArjOHw8353.png-wh_50

▲虚拟机属性中的MAC地址


不过,对于一些应用场景,多出了一个网卡eth1会让人感到不习惯。若要使用ifcfg-eth0,手动将ifcfg-eth1文件删除,同时修改ifcfg-eth0中的MAC地址(当然也要更改IP地址),使之与虚拟机的MAC地址一致,并重启系统(需要连接重启两次)即可。


以上eth0的MAC地址与虚拟机MAC不匹配的情况,与虚拟机中/etc/udev/rules.d/70-persistent-net.rules有关,此文件记录了虚拟机在第一次创建时系统得到的网卡信息及MAC地址。在上述的“不自定义”和“使用自定义规范”克隆的虚拟机中,为解决MAC问题,更改ifcfg-eth0是一种方法,另一种方式则是删除该70-persistent-net.rules文件,并重启系统(也是需要连接重启两次),这样客户系统就可以学习到新的eth0 MAC地址了。



本文转自Sunshyfangtian 51CTO博客,原文链接:http://blog.51cto.com/sunshyfangtian/1846062,如需转载请自行联系原作者

相关文章
|
3月前
|
NoSQL 前端开发 应用服务中间件
若依框架---部署到虚拟机
若依框架---部署到虚拟机
44 0
|
4月前
|
Web App开发 Java Linux
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
114 0
|
3月前
|
数据中心 容器
容器与虚拟机的区别:以Web应用部署为例
容器与虚拟机的区别:以Web应用部署为例
35 0
|
4月前
|
机器学习/深度学习 Ubuntu Linux
如何在Ubuntu 23.10部署KVM并创建虚拟机?
如何在Ubuntu 23.10部署KVM并创建虚拟机?
69 0
|
5月前
|
SQL 前端开发 应用服务中间件
虚拟机构建部署单体项目及前后端分离项目
虚拟机构建部署单体项目及前后端分离项目
52 0
|
5月前
|
开发框架 Java 关系型数据库
虚拟机部署与发布J2EE项目(Linux版本)
虚拟机部署与发布J2EE项目(Linux版本)
53 0
|
6月前
|
虚拟化
VMware vSphere Client中虚拟机“Disc Found”解决方法
VMware vSphere Client中虚拟机“Disc Found”解决方法
|
7月前
|
安全 SDN 网络虚拟化
变形金刚外传0x05:虚拟机版本Edge传输节点部署
这几日与同事聊起NSX,谈起如何用最简单的语言来描述它,无非就是软件定义网络SDN+网络功能虚拟化NFV+安全微分段DFW。NSX DC产品的软件定义网络是借助在Hypervisor内核中的vdl2和vdrb模块实现,vsip模块则用于实现安全微分段功能。那么问题来了,包括网络地址转换NAT、负载均衡器Load Balancer等在内的NFV是由谁在承载的呢?
变形金刚外传0x05:虚拟机版本Edge传输节点部署
|
8月前
|
Linux 虚拟化 Windows
windows安装VMware虚拟机(附带CentOS7部署) 2
windows安装VMware虚拟机(附带CentOS7部署)
72 0
|
8月前
|
Linux 虚拟化 数据安全/隐私保护
windows安装VMware虚拟机(附带CentOS7部署) 1
windows安装VMware虚拟机(附带CentOS7部署)
104 0

热门文章

最新文章