2016-01-20 68 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感谢您的提升。我已经编辑了一些链接页面更改的情况下对其有最少理解 –

相关问题