web-dev-qa-db-ja.com

vSphere 5.5以降-テンプレートからCentos 7をデプロイするとカスタマイズが無視される

テンプレートからCentOS7をデプロイするときに、カスタマイズが有効にならないという問題がありました。 VM OSの設定-私は、CentOSではなくRHEL7をOSとして選択しました(以前、以前の仕事で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を含む)、「templatizeスクリプト」(クレジット http://lonesysadmin.net/2013/03/26/preparing-linux-template-vms / for steps):

#!/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の「ゲストOSカスタマイズサポートマトリックス」http://partnerweb.vmware.com/programs/guestOS/guest-os-customization -matrix.pdf

10
Jeff Burns

更新:テスト済みですが、これはCentOS 7.1でもゲストOSオプションとしてRHEL 6と以下のコマンドを使用して機能します。

FYI 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
5
mjevange

ソリューション:/ etc/redhat-releaseをvSphereが認識する値「Red Hat Enterprise Linux Server release 7.0(Maipo)」に変更し、CentOS7からVMをデプロイできるようになりましたカスタマイズがうまく適用されたテンプレート。最初に既存の/ etc/redhat-releaseシンボリックリンクをrmしてください。エレガントなワンライナーソリューションについては、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です。これらはディストリビューション固有のバージョンファイルであるため、触れないでください。)

6
Jeff Burns