简体   繁体   中英

Get the current value of env.hosts list with Python Fabric Library

I've got this code ( foo and bar are local servers):

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

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

Which, of course prints foo every iteration.

As you probably know, Fabric iterates through the env.hosts list and executes mytask() on each of them this way:

fab mytask

does

task is executed on foo
task is executed on bar

I'm looking for a way to get the current host in every iteration.

Thanks,

Use env.host_string . You can find a full list of env variables here .

You can just do:

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

def mytask():
     print(env.host)

Because when you're in the task as executed by fab, you'll have that var set for free.

Thanks Marcelo.

If you want to actually use env.host_string (for concatenation purpose for instance), be sure to be inside a task. Its value is None outside.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM