2012-03-03 53 views
0

我正在編寫一個python應用程序來管理Linux機器集羣,我正在尋找一種有效的方法來向所有主機發送命令。Python IPC一對多

應用程序的一般結構是:

  • 管理界面
  • 指揮調度
  • 節點

我開始使用本地節點一個簡單的Python腳本編寫的應用程序,然後從SSH調用它(因此使用shell命令來分派命令),但我正在尋找更高效的本地解決方案。

如果我可以遠程執行python代碼而不使用SSH並傳遞(pickled)python對象,那將會很棒。

請考慮它應該能夠通過網絡與數百個主機進行通信並支持SSL/TLS。

作爲參考考慮VmWare vCenter架構,因爲我的目標是創建非常相似的東西,所以您會使用哪種方法/技術?

+1

聽起來像鹽(http://saltstack.org/),我懷疑他們的代碼的細讀可能會有所幫助:) – malangi 2012-03-03 09:00:29

+0

快看着他們的文檔這似乎是解決方案,將檢查和調整樣本檢查它是否是正確的方法,謝謝指出 – 2012-03-03 09:10:33

+0

@liwp感謝佈局編輯,下次將格式化問題更好;) – 2012-03-03 10:38:09

回答

0

和@malangi一樣,我也會建議Salt。如果你真的想推出自己的解決方案而不是重新使用Salt,你可以使用ZeroMQ作爲通信後端(這就是Salt所做的)。 ZeroMQ超級快速,隱藏了你的所有網絡通信背後的一個非常好,簡單但功能強大的套接字API。

它看起來像ZeroMQ還沒有做SSL/TLS連接:看到這SO question。但請查看ZeroMQ wiki替代方案的此頁面。

+0

顯然salt支持PKI加密,所以至少對我來說是可以接受的。至於通用架構,鹽似乎擁有我需要的所有東西,在接下來的幾天裏,將嘗試部署一個小型虛擬測試集羣並開始測試。 – 2012-03-03 10:07:50

+0

@ martino-dino似乎已經找到了你的解決方案,但是如果你以某種方式最終推出自己的產品,你可能會考慮[Versile Python](https://versile.com/products/vpy/)進行溝通(完全公開:I我是一名Versile開發者)。它支持對象級通信,其中可能包括代理[native python](https://versile.com/doc/vpy/current/recipes/native.html)對象,並且它支持PKI安全連接。 – Versile 2012-03-03 11:47:49

+0

@Versile感謝您的回覆,我會研究這個新框架,如果它適合我​​的需求並回報。 – 2012-03-09 19:42:55