2012-03-03 14 views
0

私は、Linuxマシンのクラスタを管理するためのPythonアプリケーションを作成しています。私はすべてのホストにコマンドを送信する効率的な方法を探しています。Python IPC one to many

アプリケーションの一般的なアーキテクチャは、次のとおりです。私は、ローカルノード上で、簡単なPythonスクリプトを使用してアプリケーションを書き始め

  • 管理インターフェイス
  • コマンドディスパッチャ
  • ノード

とSSHから呼び出す(シェルコマンドを使用してコマンドを送信する)が、より効率的でネイティブなソリューションを探しています。

SSHを使わずにリモートでPythonコードを実行し、Pythonオブジェクトを渡すことができれば素晴らしいと思います。

ネットワーク経由で数百のホストと通信し、SSL/TLSをサポートできることを考慮してください。

私の目標は非常に似たようなものを作成することなので、VmWare vCenterアーキテクチャを参考にして、どのようなアプローチ/テクノロジを使用するのですか?

+1

塩(http://saltstack.org/)のようなものだと思うが、私はコードの見解が役に立ちそうだと思う:) – malangi

+0

これは解決策であるようだが、 ) –

+0

レイアウト編集のための@liwpありがとうございます。一般的なアーキテクチャでは、塩は私が必要とするすべてを持っているようだ、次の日に小さな仮想テストクラスタを展開し、テストを開始しようとします。 –

答えて

0

@malangiと同様に、私も塩を提案するつもりでした。実際にソルトを再利用するのではなく、独自のソリューションをロールしたい場合は、ZeroMQを通信バックエンドとして使用することができます(これはSaltの機能です)。 ZeroMQは超高速で、本当に素敵でシンプルで強力なソケットAPIの背後にあるすべてのネットワーク通信を隠します。

ZeroMQはまだSSL/TLS接続をしていないようです:SO questionを参照してください。しかし、このページではZeroMQ wikiの代替案をご覧ください。

+0

塩はPKI暗号化をサポートしているようですので、少なくとも私にとっては受け入れられるものですが、それは適切なアプローチかどうかを確認するために、 –

+0

@ martino-dinoはあなたのソリューションをすでに見つけたようですが、どうにかして自分自身を動かしてしまうと、コミュニケーションのために[Versile Python](https://versile.com/products/vpy/)も考えられるかもしれませんVersileデベロッパーです)。これはオブジェクトレベルの通信を可能にします。これには、[native python](https://versile.com/doc/vpy/current/recipes/native.html)オブジェクトへのプロキシが含まれていてもよく、PKIのセキュリティで保護された接続がサポートされています。 – Versile

+0

@Versileご回答いただきありがとうございます。私のニーズに合っていれば、この新しいフレームワークを調べて報告します。 –

関連する問題