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 に答える