2008-09-25 13 views
5

誰も共有無しクラスタへのPerlモジュールの配備方法について提案していますか?共有無しクラスタへのPerlのデプロイ

現在の方法は非常に手動です。

  1. 各メンバーに
  2. ダウンしたのクラスタメンバーに
  3. コピーPerlモジュール(CPANスタイルモジュール)SSHを半分クラスタを降ろすと
  4. インストールされるように、各モジュールに
  5. 確認展開をperl Makefile.pl; make ; make installを実行しますサービスでは、新たに展開されたクラスタメンバは、古いクラスタメンバをアウトオブサービスし、ステップ2→4を繰り返す。

これは明らかに最適なものではないが、Perlモジュールをshared nothingクラスタに配備するための優れたツールチェーンを誰もが知っているか知っている?

答えて

4

1つのノードをオフラインにして、Perlをインストールしてから、他のノードのイメージを再作成します。

少なくとも、これはソフトウェアを非共有クラスタにインストールしたいと思う方法です。 Perlはあなたがインストールしようとしているアプリケーションです。

2

私はこれまで、説明したプロセスを自動化し、各ホストに自動的にsshし、必要なファイルをコピーし、インストールを実行するために、Expectモジュール(CPANから)を使用したPerlプログラムを開発しました。残念ながら、これはクライアント向けにオンサイトで開発されたため、共有するコードにアクセスすることはできません。あなたがExpectに精通しているなら、セットアップするのはあまり難しくありません。

0

何も共有していないクラスタが何であるかはわかりませんが、Fedora、Mandriva、Ubuntuなどの基本* nixシステムを使用している場合は確信しています。 perlモジュールの多くは、特定のアーキテクチャ用にプリコンパイルされています。これらは簡単に実行できます。

これらのシステムが同じアーチである場合は、他の誰かが言ったように、システムからシステムにコンパイルされたモジュールをコピーするだけで、受信者システムにすべての依存関係があることを確認してください。

2

現在、データ処理を行うクラスタ化されたPerlアプリケーションがあります。私たちはまた、ソフトウェアが依存する多くのCPANモジュールとモジュールを開発しました。あなたが「何も共有していない」と言うとき、私はあなたがNFSマウントのようなものを指していると仮定しています。

マシンの構成が同じ場合は、アプリケーション全体を単一のディレクトリ構造(例:/ opt/my-app)に構築し、必要な唯一のものである可能性があります箱に押し込む。

これをボックスに展開する限り、Capistranoを使用することができます。私たちは、sshを皮切りにした独自のクラスタユーティリティをいくつか開発しました。そのユーティリティの1つの形式を公開しました:parallel-jobs。そのREADMEは、複数の並列sshコマンドを実行する例を示しています。このプログラムを拡張してクラスタについて知ることができ、一連の異なるコマンドとは対照的に、クラスタ全体で同じコマンドを実行できるようにするための小さなステップです。

3

すべてのマシンが同一であると仮定すると、1つの標準インストールを維持し、rsyncなどを使用して他のマシンを最新の状態に保つことができます。

1

Capistranoは、サーバーのグループに対してコマンドを実行できるツールです。それはあなたの仕事をかなり容易にするのに完全に適しています。

さらに複雑な自動化の流れは、サーバーのグループを定義し、ロールを与えてから特定のロールに加入しているすべてのマシンにコードセットを送り出すことができるPuppetです。

2

DebianまたはUbunto OSを使用している場合は、Perlモジュールをパッケージ化することができます。私はこれを助けるためにいくつかのコードを提供しています。Perl module builderこれはまだ非常に荒いですが、動作し、独自のコードでも動作させることができます。 CPANモジュールとして、これにより展開がはるかに容易になります。

また、CPANのすべてに対してRedHat RPMを取得するプロジェクトもあります.Dave CrossはトークPerl in RPM-Landを使用しました。

パッケージ化されていない他のシステムでは、rsyncオプション(あるマシンにインストールしてからrsyncをインストールする)もうまくいくはずです.Windows共有とrsyncをマウントすることもできます必要に応じてunix。

Puppetなどの中央マネージャを使用すると、コードのインストールからユーザーと電子メールの設定の管理まで、クラスタ内のマシンの作成と保守が非常に簡単になります。同様のことを行うパイプラインにはPerlプロジェクトもありますが、これはまだ公開されていません。

関連する問題