Deployment

從 vSphere 5.5 - 從模板部署 Centos 7 會忽略自定義

  • February 21, 2018

我在從模板部署 CentOS7 時遇到了問題,因為自定義沒有生效。對於 VM 作業系統設置 - 我選擇了 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 自定義所需的 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

更新:剛剛測試,這仍然適用於使用 RHEL 6 作為來賓作業系統選項和以下命令的 Centos 7.1。

僅供參考 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

解決方案:我將 /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。請勿觸摸它們,因為它們是特定於發行版的版本文件。)

引用自:https://serverfault.com/questions/653052