web-dev-qa-db-ja.com

Puppet:(たくさんの)Apache VirtualHostの管理

私は一般的に構成管理を学び、特に puppet を使用して構成を管理しています。私はすでにいくつかの一般的な調査を行っており( SFでも )、現在、ApacheVirtualHostsを検討しています。

2つのシステムで多数の [〜#〜] lamp [〜#〜] Webサイト(現在は数百の範囲にあります)をホストしています: Apache2 / mod_php 1つと MySQL 1つ-基本的には SFに関する別の質問 の反対で、それぞれが少数のvhostで多数のサーバーを管理します(実際には1つではない場合、私はわからない)。私はまだpuppetで動作する設定をまとめていませんが、問題はないはずです。 多く とレシピがあります。

明らかなApache構成ファイル(ここでは問題ないと思います)に加えて、すべての仮想ホストでいくつかのディレクトリを作成し、アクセス許可を確認する必要があります(たとえば、documentrootを含む各仮想ホストのルートディレクトリ、専用のtmpディレクトリ、専用のtmpディレクトリWebサーバー上のphpセッションファイルディレクトリ(SSL証明書など)、およびユーザー+ MySQLサーバー上の1つ以上のデータベース。

新しいvhostを追加するには、それらを作成するためにパペットが必要です。1つを削除すると、ユーザーデータをバックアップして2つのサーバーからライブデータを削除するスクリプトを実行するためにパペットが必要になります。ディレクトリ、db、権限など.

すべてのパペットの実行で実行されているすべてのチェック、特にファイルシステムのチェック(Webサーバー上)で最大数百の仮想ホストにアクセスするとき、特に将来的にシステムがさらにロードされるときに、問題が発生しますか? (1000から2000のWebサイト範囲をサーバーあたりの妥当な最大値としてターゲットするとします)。

ネットでそれをした経験はありますか?グーグルで検索しましたが、「puppet」と「Apache」を検索すると 信号/ノイズ比 が低いため、何も見つかりませんでした。

9
Luke404

多くのApache仮想ホストを管理することは問題にならないと思いますが、確かには言えません。許容可能なパフォーマンスは、ビジネスニーズによって定義されます。それが十分に速いかどうかを判断できるのはあなただけです。 CPU負荷の削減に関する適切なスレッドは次のとおりです。 https://groups.google.com/forum/?fromgroups#!topic/puppet-users/sxtMvCnKnys [1-25]

スレッドを要約すると:

  • パペットエージェントの実行間の遅延を増やす
  • パペットをスケジュールせず、パペットキックまたはmcollectiveのみを使用して実行をトリガーします
  • 特定の時間にのみ発生するようにApacheの変更をスケジュールします。
  • 物事を管理するために2つの異なる環境(保守と運用)を使用します。生産を軽量に保ち、メンテナンスを使用して変更を加えます。

PuppetLabs WebサイトからApache仮想ホストを管理する例を次に示します。 http://docs.puppetlabs.com/learning/definedtypes.html#an-example-Apache-vhosts

設定のセットアップと削除は問題になりません。最大の問題は、Webアプリケーション/サイトのデータファイルを削除することです。そのためには、NFS/AFSなどの共有ストレージをお勧めします。共有ストレージを使用していない場合は、ユーザーが生成したデータがそのまま残されているか、バックアップされているか、新しいサーバーに移行されていることを確認してください。

あなたはウェブホスティング会社のような大規模なホスティングの状況にあると思われるので、サイトの個々のサイト名をパペットマニフェストにエンコードしないことをお勧めします。このために、Hiera < http://puppetlabs.com/blog/first-look-installing-and-using-hiera/ を使用することをお勧めします。 Hieraでは、仮想ホストと実サーバーのマッピングのリストを格納する別の方法を使用できます。 Hieraではフラットファイルまたはデータベースを使用できます。残念なことに、私はHieraを知らないので、必要なマルチレベルHieraデータ構造のセットアップ方法を案内することはできませんが、少なくともHieraの一般的な方向性を示すことができます。

4
edgester