我需要能夠以編程方式管理supervisord安裝程序。此外,系統中的任何用戶都不應該能夠訪問supervisord的配置。出於這個原因,通信需要以某種方式得到保證。如何通過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)
。我不知道爲什麼它會跳過名稱空間包的安裝。
我該如何以編程方式與supervisord進行通信?