スーパーバイザーのセットアップをプログラムで管理できる必要があります。さらに、システム上のどのユーザもスーパーバイザの設定にアクセスできないようにする必要があります。このため、何らかの形で通信を確保する必要があります。xmlrpc経由でsupervisordへのプログラムによるアクセスを安全に得る方法はありますか?
私はsupervisordがXML-RPCの形でプログラムによるアクセスを提供していることを知っています。私はドキュメントを読み、それをいくつかの方法で処理しようとしましたが、私は問題にぶち当たっています。 Introduction pageで
、ドキュメントはXML-RPCインターフェイスのためのHTTPサーバを実行しているし、それとの通信にPythonの標準ライブラリxmlrpclibを使用することをお勧めします。
inet_http_server
supervisord.confのディレクティブには、ユーザー名、パスワード、およびポートが設定として含まれています。接続を暗号化するオプションはありません。- xmlrpclibはユーザー名とパスワードもサポートしていません。構文
username:[email protected]:port
を使用すると、IOError: unsupported XML-RPC protocol
となります。ドキュメントページの例でわかるように、認証は行われません。
UNIXソケットは安全であるため、xmlrpclibを使用して
[unix_http_server]
に接続することをお勧めします。それでも、認証方法がわからず、さらにxmlrpclibはネットワークHTTP/HTTPSサーバーしかサポートしていません。このマニュアルの別のページには、
supervisor.rpcinterface
モジュールが記載されています。私はPythonでそのようなものにアクセスすることはできません。それがなぜなのか、さらに詳しい情報を収集するために、私はPipとスーパーバイザを再インストールしました。sudo pip install --upgrade supervisor
。パイプの出力では、私はラインSkipping installation of /usr/local/lib/python2.6/dist-packages/supervisor/__init__.py (namespace package)
を参照してください。名前空間パッケージのインストールをスキップする理由はわかりません。
スーパーバイザとプログラムで安全に通信するにはどうすればよいですか?