如何在多个服务器上同时执行命令

时间:2016-01-20 09:13:30

标签: python fabric python-multithreading

我的功能需要30秒才能完成。

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

此功能必须同时在400台服务器上运行。由于我需要尽快完成此步骤,因此我不想连续执行。可以使用什么方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

你可以使用" fabric"一个python库

安装面料:

$ pip install fabric

请参阅http://www.fabfile.org/

示例fab脚本:

from fabric.api import *

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

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

并在一组400台服务器上并行执行,如下所示:

$ fab -H -P reload

用于更好的配置检查结构docs.