25

我有这个代码(foo并且bar是本地服务器):

env.hosts = ['foo', 'bar']

def mytask():
    print(env.hosts[0])

当然,每次迭代都会打印foo 。

您可能知道,Fabric 遍历 env.hosts 列表并以这种方式在每个列表上执行 mytask() :

fab mytask

task执行于foo
task执行于bar

我正在寻找一种在每次迭代中获取当前主机的方法。

谢谢,

4

3 回答 3

40

使用env.host_string. 您可以在此处找到完整的env变量列表。

于 2010-07-26T13:06:20.497 回答
27

你可以这样做:

env.hosts = ['foo', 'bar']

def mytask():
     print(env.host)

因为当您在 fab 执行的任务中时,您将免费设置该 var。

于 2010-07-26T15:43:56.740 回答
3

谢谢马塞洛。

如果您想实际使用env.host_string(例如用于连接目的),请务必在任务中。它的价值在None外面。

于 2010-07-26T13:39:44.557 回答