從 vSphere 5.5 - 從模板部署 Centos 7 會忽略自定義
我在從模板部署 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。請勿觸摸它們,因為它們是特定於發行版的版本文件。)