新しくインストールしたサーバーの前提条件をチェックして、サーバーが実際に動作することを確認する方法

新しくインストールしたサーバーの前提条件をチェックして、サーバーが実際に動作することを確認する方法

新しいサーバーをインストールするとき、サーバーが実際に動作するために必要なことを忘れがちです。サーバーを初めて起動して、サーバー上でライブ ユーザーが実行される前に、不足している機能に気付くための自動事前チェックのようなものが欲しいです。

ロード バランサーの背後で Tomcat や PHP などのプラットフォームを使用してアプリケーション サーバーのプールを実行しているとします。このサービスには通常、次のものが必要です。

  • インストールされたソフトウェア(wgetやImageMagickなどの外部プログラム)
  • インストールされたモジュール (例: libcurl、mod_rewrite、Oracle など)
  • 設定ファイル(例:tnsnames、php.iniなど)
  • マウントされたファイルシステム、どこかのシンボリックリンク、いくつかのディレクトリに対する特定の権限
  • 特定のネットワーク ポートがマシンからアクセス可能である必要があります (例: mysql または http プロキシ)
  • 特定のネットワーク ポートがマシン上でアクセス可能である必要があります (これは別のマシンからテストする必要があります。例: rsync またはポート 8080)
  • 特定のプロセスを開始する必要がある
  • cronジョブが存在する必要がある

これらの条件のほとんどに対して単体テストを記述し、インストール後に各マシンで実行することは可能だと思いますが、そのようなタスクには、おそらくテストを記述するための特別なシェルのような言語を備えた、より具体的なツールが望ましいでしょう (すべてをテストするにはさまざまなツールが必要であることを考えると、これには Perl スクリプト、Java プログラムの実行、ファイル、権限、confic ファイル内の行のチェックなどが含まれます)。

不足している項目を修正できるようにしたいわけではなく、運用担当者に追加の変更を依頼する必要があるかどうかを確認したいだけだということを付け加えておきます。

答え1

これを実現するには、CFengine (ただし、Puppet でも同様に機能します) を使用して、集中化された構成に基づいて個々のノードの構成を行います。CFengine は、マシンの正しい構成を適切な順序で強制し、それを継続します。たとえば、プロセスは停止している場合は再起動されます。

すべてのノードで、さまざまな項目 (中央ストレージ上のファイルが読み取り可能か、MySQL クラスターへの接続を開くことができるかなど) をチェックするスクリプトが利用できます。このスクリプトは、ロードバランサーによってヘルス チェックとして使用されます。すべてのチェックに合格した場合にのみ、ノードはロードバランサーが期待する値を返し、'up' のフラグが付けられ、トラフィックを処理できるようになります。

答え2

新しいシステムの「準備状況」をテストするスクリプトを作成する前に、ビルド プロセスを文書化する必要があります。プロセス ドキュメントには、検証するチェック リストと各サーバーの一貫したビルドが記載されています。Cfengine と puppet はビルドを自動化する優れた方法ですが、それらを使用するには、構成する必要のあるすべての項目のリストが必要です。

関連情報