2012-03-23 10 views
2

私は次のような問題があります。Webアプリケーション(再生)内からリモートサーバ上でコマンドを実行する必要がありますが、Webサーバからリモートサーバへのsshアクセスはありません。私が持っている唯一のものは、リモートサーバーがhttp(s)経由でWebサーバーにアクセスできることです。Webアプリケーションからリモートサーバのコマンドを実行する

私の考えは、JSON経由で要求されたコマンドを返すURLをポーリングする、pythonデーモンを作成することでした。

それは良い考えですか?ここでクライアントに役立つフレームワークはありますか?

BRルネ

+0

リモートサーバーで正確に何をする必要がありますか?任意のシェルコマンドを実行しますか? 1つの特定のシェルコマンドを実行しますか? –

+0

任意のシェルコマンドを実行します。 – reen

+0

悪い考えのようです。これを行う必要がある場合は、少なくとも制限されたコマンドセットしか許可しないでください(chroot jail内はうまくいくでしょう)。 –

答えて

3

私の考えは、Pythonのデーモンを作成することでした世論調査というJSON経由 要求されたコマンドを返すURL。

これは基本的にメッセージブローカーです。したがって、あなた自身を書くのではなく、rabbitmqのような利用可能なメッセージブローカーを使用してください。これには、Java用のバインディングと、ターゲットサーバー上で実行する言語があります。

Webサーバーから、メッセージをブローカーにディスパッチします。これにより、ターゲットサーバ上のワーカーが「起きて」何らかのタスクを実行するようになります。オプションで、メッセージブローカー全体で結果をフェッチしたり、いくつかの共通ストア(一部のk/vストアの更新、共通データベースへの書き込みなど)に書き出すこともできます。

+0

これは私の考えでもありましたが、新しいメッセージブローカーサーバーをインストールすることはできません。私が持っている唯一の解決策は、私が言いました。 – reen

+1

専用マシン上にある必要はありません。 –

0

あなたがピロでリモート呼び出しを行うことができ、リモートPythonのオブジェクトを呼び出すことができそうです。 Python Remote Objectsは、Pythonで完全に記述されたPythonでのみ使用できる分散オブジェクトシステムです。小さくてシンプルで無料です。ここでそれを確認してください:pyro

+0

残念ながら、リモートサーバにはポートはありません。私は、リモートサーバーからWebサーバーへのhttp(s)接続をjaveします。 – reen

関連する問題