回答:
Debianの事前シード(インストーラが求めるすべての質問に回答するテキストファイルとPuppet)を与えることをお勧めします。
FAIではなくpreseedを使用する理由は、最初にイメージをセットアップし、それを最新の状態に保つ必要がないためです。最終的にすべてを手動で実行した場合と同様のインストールが行われます。新しいリリースをインストールするときは、新しいイメージを再構築するのではなく、変更を使用して構成ファイルを更新する必要があります。
構成管理ツールは、同じ役割を実行する複数のサーバーがあり、それらを同一にしたい場合、たとえばWebサーバークラスターなどで特に役立ちます。ただし、これらはすべてのサーバーの基本インストールの構成にも役立ちます。ntpdやMTAなど、すべてのサーバーに特定のパッケージをインストールする必要があります。すべてのサーバーの構成ファイルを変更する必要があります。追加の利点は、マニフェストをSubversionのようなものに保持し、サーバーで何が変更されたか、誰がそれをなぜ行ったかを記録できることです。構成管理は、サーバーに障害が発生した場合に命を救うこともできるため、迅速に再構築する必要があります。OSをインストールし(FAIまたはpreseedを使用)、パペットをインストールし、それを削除して、以前とまったく同じようにビルドし直します。明らかに、データのバックアップを保持する必要があります。
構成管理には、それを使用して変更を加えるだけで、初期費用が設定されるようにするための献身が必要ですが、作業セットアップが完了したら後悔することはありません。
Puppetは、あなたが言及した2つのツールの中で最も新しいものです。本当にお勧めです。構成は宣言型言語であり、高レベルの構成を簡単に構築できます。また、その周りには非常に大きなコミュニティがあり、メーリングリストやIRCチャンネルでの支援を歓迎する人々が常にいます。
2-3ボックス以上で、「テンプレート」または特定のロールを実行するサーバーの概念がある環境では、CFengineをお勧めします。
どうして?簡単に言えば、ミスを減らし、環境内のあらゆる場所でファイル/ディレクトリのアクセス権が正しいことを保証するツールがあり、さらにサーバーを展開するときに、ツールがすべてを完全に処理し、ミスを犯しません。
すでに問題が発生している12時間のシフトの終わりにWebサーバーを展開する熟練したシステム管理者でさえも対照的です。/etc/random/locationに移動する必要がある厄介な小さな構成ファイルを覚えているでしょうか。 / foo / barそれ以外の場合、アプリケーションは静かに、顧客の請求のようなかなり重要なことを実行できませんか?:)
CFengineのようなツールは、環境全体のセキュリティ更新を実行する優れた方法でもあります。Nagios構成(NRPE)をすべてのボックスにドロップするのも簡単です。あなたは、5箱または5つのを扱っているかどうか百あなたはボックスでしょう cfengineのに時間を節約できます。
おそらく私の環境が少し大きいことに注意する価値がありますが、CFengineをあなたが注意するよりも小さな環境にも展開しているので、推奨事項です!
おそらく次の質問はCFengine対Puppetでしょうか?それはより難しい決定であり、特にエラーログに関するPuppetの未熟さのために(初期には)CFengineを使用していました。最近はよくわかりません。いくつかの多額のRTFMとRTFSとirc.freenode.net/#puppetでのクライアント接続の問題が- <>人形と私の特定の問題に背中を見ると、彼らはSSL証明書に関連して、痛々しいまだ私は、サーバーを診断3時間を費やした時間を思い出すだけ見つけるために、ログに記録されないエラーが発生し、ルークは「ああ、それを修正するのは本当に難しい」と言って、決してしませんでした。:(
cfengineとpuppetに加えて、chefもあります。物事は常に予期しない方向に成長するため、これらのツールのいずれかを使用することを強くお勧めします。これは、一元化された場所で物事を管理するのに役立ちます。
認識すべき重要なことは、すべてを手に入れることができない可能性があることですが、少なくとも90%を手に入れることができれば、それは始まりです。その上、それは楽しみであり、長期的にはあなたの人生を楽にします。最後に、前進するのは良いスキルです。
5年前からcfengineを使用してdebianをインストールしています(最近はwoodyからlennyまで)。etchでは、カスタムのdebian-installerを作成します。preseedのおかげで、「ホスト名は何ですか」という1つの質問が出てきます。この後、cfengineはサーバー全体(dns + dhcp、dnssec、samba、ntpd、デフォルト(Samba)のユーザーとパスワード、ssh、openvpn、apache vHosts、LVM上のrsnapshotによるバックアップ、カスタムwebminmodulesなど)を構成します。
サーバーを1つだけインストールする場合でも、次のようにツールボックスからcfengine-scriptsを使用します。
control:
Repository = ( $(CFREPO) )
IfElapsed = ( 0 )
Syslog = ( on )
actionsequence = ( editfiles shellcommands )
CPTYPE = ( sum )
editfiles:
{ /etc/sysctl.conf
# don't spam on tty:
BeginGroupIfNoSuchLine "kernel.printk.*=.*2 4 1 7"
DeleteLinesMatching "^kernel.printk.*=.*"
Append "kernel/printk=2 4 1 7"
EndGroup
# no E(xplicit?) C(ongestion) N(otification)
BeginGroupIfNoSuchLine "net.ipv4.tcp_ecn.*=.*0"
DeleteLinesMatching "^net.ipv4.tcp_ecn.*=.*"
Append "net/ipv4/tcp_ecn=0"
EndGroup
BeginGroupIfNoSuchLine "net.ipv4.ip_forward.*=.*1"
DeleteLinesMatching "^net.ipv4.ip_forward.*=.*"
Append "net/ipv4/ip_forward=1"
EndGroup
DefineClasses "configchange_sysctl"
}
shellcommands:
configchange_sysctl::
"/sbin/sysctl -p /etc/sysctl.conf"
# vim: set ts=2:
cf2-scriptsは多少人間が読めるので、cfengineが好きです。
そのため、自動構成管理用のツールを使用する価値があります。
/ thorsten
小規模なサイトでも価値があります。成長に伴う一貫性がすべてです。そして、あなたはあなたのサイトが成長することを知っています。まだ小さいうちに始めましょう。Cfengineは素晴らしいです。特に、フィールド全体のすべてのパッケージマネージャーを処理できるバージョン3と、その軽量で安全な「機能する」バージョン3です。Puppetは主張した内容を提供しませんでした。シェフを試したことはありません。
他に対するcfengineの利点は、非常に軽量であるが、実際にはより多くの機能があることです。puppetが使用するWeb証明書ではなく、セキュリティはsshに似ています。上司にcfengineについて空想科学小説だと思ったとき:)未来的なものを探しているなら、マーク・バージェスの研究論文を読んでみてください。クール。
私はここで一人一人に同意します。あまり大きくないときは、実用的なインフラストラクチャの学習とセットアップを開始する必要があります。成長すると準備ができているからです。
実行したい内容に応じて、FAI、cfengine、Debian / Ubuntuの事前シードに進みます。FAIは多くの異なるツールで動作するため、Debianライクなディストリビューションにとって良いスタートです。FAI(およびcfengine)クラス制御の構成を使用すると、インストールを簡単に小さなモジュールに分割し、各モジュールに使用するモジュールを選択できます。このように、多くの異なるマシンがある場合でも便利です。これらのスクリプトを使用してインストールを文書化するため、実際にはより便利です。そして、新しいマシンにインストールするとき、何も忘れません。
はい、ライブインストールで変更を展開する前に、テストするマシンをいくつか用意する必要があります。ただし、このような構成スクリプトを使用すると、ライブインストールの手順を忘れずに実行できます。