从 vSphere 5.5 开始 - 从模板部署 Centos 7 会忽略自定义

从 vSphere 5.5 开始 - 从模板部署 Centos 7 会忽略自定义

我在从模板部署 CentOS7 时遇到了麻烦,因为自定义设置无法生效。对于 VM OS 设置 - 我选择了 RHEL7 作为 OS,而不是 CentOS(之前我在之前的工作中从 Oracle Linux 6.5 中吸取了这一教训)。它应该可以工作吧?不完全是。

症状
从 CentOS7 模板部署新的 VM 后,服务器在首次启动时会出现正确的主机名,然后执行自定义脚本,VM 重新启动后,它再次具有原始模板主机名,并且虽然 /etc/sysconfig/network-scripts/ifcfg-ether 具有正确的设置,但正确 nic(ifcfg-e*)的 ifcfg 设置尚未实施。

背景

我按照 VMWare 的说明进行了 CentOS 设置: http://partnerweb.vmware.com/GOSIG/CentOS_7.html

在添加了一些软件包(包括 vSphere 自定义所需的 net-tools)之后,我使用“模板化脚本”按如下方式完成了模板(归功于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(内部版本 3000241 或更高版本)
  • vSphere 6.0 及更高版本

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

答案1

更新:刚刚测试过,这在 Centos 7.1 中仍然有效,使用 RHEL 6 作为客户操作系统选项和下面的命令。

仅供参考,redhat-release 是符号链接到 centos-release 的。如果您编辑 redhat-release,则实际上是在修改 centos-release。

要遵循解决方案的建议而不修改发行版特定的版本文件,请执行以下操作:

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

答案2

解决方案:我将 /etc/redhat-release 更改为 vSphere 识别的值“Red Hat Enterprise Linux Server release 7.0 (Maipo)”,现在我可以从 CentOS7 模板部署虚拟机,自定义设置已正确应用。请务必先 rm 现有的 /etc/redhat-release 符号链接。请参阅 mjevange 的回答,了解简洁的一行解决方案。

背景:使用与上述相同的方法为 CentOS 7 创建并部署新的 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。请不要触碰它们,因为它们是特定于发行版的版本文件。)

相关内容