Obtenga el valor actual de la lista env.hosts con Python Fabric Library

Tengo este código ( foo y bar son servidores locales):

 env.hosts = ['foo', 'bar'] def mytask(): print(env.hosts[0]) 

Que, por supuesto, imprime foo cada iteración.

Como probablemente sepas, Fabric recorre la lista env.hosts y ejecuta mytask () en cada uno de ellos de esta manera:

 fab mytask 

hace

task se ejecuta en foo
task se ejecuta en la bar

Estoy buscando una manera de obtener el host actual en cada iteración.

Gracias,

Utilice env.host_string . Puedes encontrar una lista completa de variables env aquí .

Usted puede simplemente hacer:

 env.hosts = ['foo', 'bar'] def mytask(): print(env.host) 

Porque cuando estás en la tarea ejecutada por fab, tendrás esa var configurada de forma gratuita.

Gracias marcelo

Si realmente desea utilizar env.host_string (por ejemplo, para fines de concatenación), asegúrese de estar dentro de una tarea. Su valor es None fuera.