从vSphere 5.5 – 从模板部署Centos 7将忽略自定义设置

从模板中部署CentOS7时,我一直有麻烦,因为定制不起作用。 对于VM操作系统设置 – 我select了RHEL7作为操作系统而不是CentOS(以前在以前的工作中已经学习了Oracle Linux 6.5的课程)。 它应该工作正确吗? 不完全是。

症状
从CentOS7模板中部署新的虚拟机后,首次启动时服务器会出现正确的主机名,然后执行定制脚本,在虚拟机重启之后,它将重新获得原始的模板主机名,而/ etc / sysconfig / network- scripts / ifcfg-ether具有正确的设置,正确的nic(ifcfg-e *)的ifcfg设置尚未实现。

背景

我遵循了VMWare的CentOS安装说明: http : //partnerweb.vmware.com/GOSIG/CentOS_7.html

添加了几个软件包(包括vSphere自定义所需的networking工具)之后,我使用“templatize脚本”对模板进行了如下修改( http://lonesysadmin.net/2013/03/26/preparing -linux-template-vms /步骤):

#!/bin/bash clean yum cache /usr/bin/yum clean all #remove udev hardware rules /bin/rm -f /etc/udev/rules.d/70* #remove nic mac addr and uuid from ifcfg scripts /bin/sed -i '/^\(HWADDR\|UUID\)=/d' /etc/sysconfig/network-scripts/ifcfg-eth0 #remove host keys (important step security wise. similar to system GUID in Windows) /bin/rm /etc/ssh/ssh_host_* #engage logrotate to shrink logspace used /usr/sbin/logrotate -f /etc/logrotate.conf #and lets shutdown init 0 

支持的版本不再需要解决方法

  • vSphere 5.5u3(构build3000241或更高版本)
  • vSphere 6.0和更高版本

VMWare的“客户操作系统自定义支持列表” : http : //partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf

更新:刚刚testing,这仍然适用于使用RHEL 6作为客户操作系统选项和下面的命令的Centos 7.1。

仅供参考redhat发行版符号链接到centos-release。 如果你编辑redhat-release,你实际上是在修改centos-release。

要在不修改发行版特定版本文件的情况下遵循解决scheme的build议,请改为执行此操作:

 rm -f /etc/redhat-release && touch /etc/redhat-release && echo "Red Hat Enterprise Linux Server release 7.0 (Maipo)" > /etc/redhat-release 

解决scheme :我将/ etc / redhat-release更改为“红帽企业Linux服务器版本7.0(Maipo)”的vSphere认可值,现在我可以从我的CentOS7模板部署一个虚拟机,应用自定义。 确保首先读取现有的/ etc / redhat-release符号链接。 请参阅mjevange对优雅单线解决scheme的回答。

背景 :使用与上述CentOS 7相同的方法创build并部署一个新的Oracle Linux 7(OEL7)模板并使其工作后,我很快意识到问题所在。 一探究竟:

Centos7中的默认/ etc / redhat-release文件:

  cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) 

RHEL7 / OEL7中默认的/ etc / redhat-release文件:

  cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.0 (Maipo) 

(请注意,CentOS和Oracle Linux的版本文件分别为centos-release和oracle-release,请勿触摸这些文件,因为它们是发行版的特定版本文件。)