web-dev-qa-db-ja.com

RHEL / CentOSキックスタートワークフローを最適化するためのヒント

私は、複数のデータセンターとオフィスの場所にあるCentOSシステムで構成される環境で作業しています。私はしっかりしたインストール後のスクリプトで妥当なキックスタートを使用してきましたが、プロセスを合理化して拡張したいと思っています。独自のyumリポジトリがあり、使用中のハードウェアの範囲を制御できます(通常は HP ProLiantハードウェア またはVMWareです)毎週1台のサーバーを構築または再デプロイするとします。 ハードウェアの準備に必要な手順 に続いて、OSのセットアップを開始します。私が今抱えている問題は次のとおりです。

1)。ネットワークインストーラーでシステムを起動するための優れた方法。 CentOSディストリビューションで入手可能な10mbのboot.iso/netinstall.isoを使用しています。これをVMWarevCenter(VMの場合)またはHP ILO(通常はSSH経由、ISOのURLを指す)のいずれかを介してマウントし、インストールを開始します。データセンターの場所でDHCPを使用できないため、ほとんどの場合PXEを使用できません。たとえば、boot.isoをUSBキーに取り込むクリーンな方法はありますか?

2)。キックスタート用に静的IPを設定する必要がある場合があります。インストーラープロンプトのboot:コマンドラインで入力する以外に、その情報を入力するためのより良い方法はありますか?

3)。キックスタートをカスタマイズするための良い方法。現在、必要なもののほとんどはありますが、異なるRAIDセットアップ(2つのSmartArrayコントローラーなど)を考慮してパーティションスキームを変更する必要がある場合があります。現在、私は基本的に、システム(またはシステムのグループ)の設定ごとに個別のキックスタートファイルを作成しています。古い* .cfgファイルでいっぱいのディレクトリになってしまいます。これを行うにはもっとエレガントな方法があることを私は知っています。 PHP多分?

4)。インストール方法を手伝ってください。現状では、プロンプトから完了までの完全なビルドには5〜10分かかります。場所によっては、インストール方法が重要であることに気づきました。 HTTPはyumサーバーに対してローカルで適切に機能しますが、他のサイトへの高帯域幅、低遅延の接続では不十分です。このような場合、NFSの方がうまく機能します。キックスタートプロセスの前に設定やシステムパラメータをプリロードするために使用される気の利いたトリックをいただければ幸いです。

5)。インストール後のスクリプトはうまく機能します。追加のパッケージをプルし、いくつかの初期設定を設定し、サービスリストを削除し、いくつかのユーザー/パスワード/ SSHキーを入力します。この環境を適切な構成管理で実行したい(私は CFEngine に慣れていますが、 Puppet または Bcfg2 はおそらく最近はより良い選択です)。インストール後のスクリプトを整理して、それらの関数をCFEngineに移動しますか?しかし、それはおそらく別の質問です。

これは私が使用しているキックスタートファイルの例です:

install
text
url --url http://yum.abc.com/5.6/os/x86_64/
#nfs --server=yum.abc.com --dir=/yum/5/os/x86_64
lang en_US.UTF-8
langsupport --default=en_US.UTF-8 en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp
rootpw --iscrypted $encryptedpassword
firewall --disabled
selinux --disabled
authconfig --enableshadow --enablemd5
timezone --utc America/Chicago
bootloader --location=mbr
clearpart --all --initlabel
part /boot --fstype ext3 --size=200
part /usr --fstype ext3 --size=8192 --asprimary
part / --fstype ext3 --size=12288 --asprimary
part /var --fstype ext3 --size=4096
part swap --size=8192
part /tmp --fstype ext3 --size=2048
#part /opt --fstype ext3 --size=100 --grow
#part /scratch --fstype ext3 --size=61440

%packages
@ admin-tools
@ editors
@ system-tools
@ network-server
@ mail-server
@ server-cfg
@ development-tools
yum-fastestmirror
rpm-devel
e2fsprogs
grub
kernel-devel
net-snmp-utils
-Subversion
-xdelta

%post
exec < /dev/tty3 > /dev/tty3
chvt 3
echo
echo "################################"
echo "# Running Post Configuration   #"
echo "################################"
(
/usr/bin/wget http://ks.abc.com/post/post-install-abc.sh -O /root/post-install-abc.sh
/bin/chmod 755 /root/post-install-abc.sh
/root/post-install-abc.sh
) 2>&1 | /usr/bin/tee /var/log/post-install.log
chvt 1
6
ewwhite

Cobblerをご覧ください- https://fedorahosted.org/cobbler/ -PXE環境で使用していますが、動作するはずです。

3
jcollie

将来的にはコブラー/衛星に取って代わるので、コブラーよりも フォアマン をお勧めします。

フォアマンははるかに柔軟性があり、適切に設定すると、ホストの構築を他の人に委任できます。

また、Puppetと緊密に統合されています。つまり、クラス、証明書の管理、Puppetレポートの表示などを行うことができます。

5
Not Now