2016-01-20 66 views
-1

我有一個需要30秒才能完成的功能。如何在許多服務器上同時執行命令

def reload(): 
    sudo("service apache2 reload") 

該功能必須同時在400臺服務器上運行。由於我需要儘快完成此步驟,因此我不想連續執行。有什麼方法可以用來做到這一點?

+2

你能重新制定你的問題,使我們能夠更好地瞭解你到底想要什麼?你試過什麼了? –

回答

1

你可以用 「布」 一個Python庫

安裝布:

$ pip install fabric 

http://www.fabfile.org/

樣品晶圓廠腳本:

from fabric.api import * 

env.hosts = ['host1', 'host2',...,'host400'] 

@parallel 
def reload(): 
    sudo("service apache2 reload") 

並執行一組400臺服務器並行,如下所示:

$ fab -H -P reload 

更好的配置格子布docs.

+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – Max

+1

@Max感謝您的提升。我已經編輯了一些鏈接頁面更改的情況下對其有最少理解 –

相關問題