2016-04-08 18 views
0

Ben kumaş için yeni ve farklı bilgisayarlar (belki) ve farklı parametreler ile bir görev yürütmek niyetindeyim. Ve ben de aynı parametre ile paralel olarak görevi çalıştırmak konak listesiAynı görevi, birden çok ana makinede, farklı parametreleri kullanarak, kumaş kullanarak nasıl çalıştırabilirsiniz?

env.hosts = ['host1', 'host1', 'host2', 'host3'] 
env.passwords = { 
    'host1:22': 'password1', 
    'host1:22': 'password1', 
    'host2:22': 'password2', 
    'host3:22': 'password3' 
} 

set ve sadece üç çıkış var, belki env yapılandırılan aynı ana ve şifre vardır. Aslında göreve atanan her parametre farklıdır, ancak aynı argümanı sadece kabukta fab function:parameter girerek atayabilirim.
Yani env.hosts veya env.passwords gibi aynı şekilde parametreleri yapılandırabilir miyim, belki böyle bir şey?

env.parameters = ['para1', 'para2', 'para3', 'para4'] 

Teşekkür

cevap

0

listenizin set() sadece 3 farklı barındırıcıyı yapılır. Böylece sadece komutunuzun 3 çalışması olacak. Kumaş, ana makine listelerini otomatik olarak kaldırır.

Bunu değiştirmek isterseniz, muhtemelen execute() işlevini kullanmaya başlamanız gerekir. Bu işlevle ilgili dokümanlar bölümündeki Here bölümüdür.

bunu bu hale getiren bu

env.hosts = ['host1', 'host1', 'host2', 'host3'] 
env.passwords = { 
    'host1:22': 'password1', 
    'host1:22': 'password1', 
    'host2:22': 'password2', 
    'host3:22': 'password3' 
} 
env.parameters = ['para1', 'para2', 'para3', 'para4'] 

def bar(arg): 
    #do some work with arg 

def foo(): 
    for index, host in enumerate(env.hosts): 
     execute(bar, env.parameters[index] hosts=host) 
+0

gibi olurdu kullanmak isteyeceği şey bir örnek 'bar' seri kullanarak' for' döngüsünde idam, ama ben farklı parametrelerle aynı görevi çalıştırmak için tasarlanmıştır '@ paralel' dekoratör kullanılarak paralel. Bunu mümkün kılmanın bir yolu var mı? @Morgan –

İlgili konular