我想尝试执行此
env.host_string = "server1.com"
with cd("/tmp"):
run("some command)
#switch servers
env.host_string = "server2.com"
with cd("/home"):
run("some other command")
问题是命令需要按顺序执行而不是在parrelel中执行。我无法想办法在面料中做到这一点。我已经尝试了with env("hostname"):
,但这不起作用。
答案 0 :(得分:1)
使用@serial装饰器来避免并行执行任务。您还可以尝试使用@hosts装饰器(请参阅同一页面)将每个任务限制为主机的子集,并在调用Fabric时对所有主机进行争论。
答案 1 :(得分:1)
您可以使用fabric的execute()
来完成此操作task_a():
with cd("/tmp"):
run("some command")
task_b():
with cd("/home"):
run("some other command")
task_c():
execute(task_a,hosts=["server1.com"])
execute(task_b,hosts=["server2.com"])