Fabric并行任务未绑定到特定集合
我想找个方法,用多次运行(multirun)来定义一个任务,这个任务会在命令行中指定的一组服务器上运行(通过角色或主机来定义)。
到目前为止,我看到的所有例子都是这样做的:
env('app-nodes').multirun('some command')
但是我不想把角色写死在代码里。我想用 fab -R ...
来定义它。那我有什么选择呢?
我本来期待这样可以工作:
@task
def some_task():
env().multirun('some command')
但这会报错 TypeError: '_AttributeDict' object is not callable
1 个回答
0
你可能想要使用任务参数,然后把它传递给 tav 的 env() 方法,这样做会比较好:
http://docs.fabfile.org/en/1.1.1/usage/fab.html#per-task-arguments
另外,你为什么会觉得空的主机列表可以正常工作呢?