私は以下のように、箱の数百人が異なるだけゲートウェイでアクセスすることができます持って示していますマルチプロセッシングを使用する場合、env.hostをファブリックに転送するにはどうすればよいですか?
gateway1:ip1,ip2
gateway2:ip3,ip4 ...
すべてのジョブは、1分間で行わ必要があるので、私は、コマンドfab -f ytj_sto.py doitnow
、以下のエラー以下のマルチを使用します。
[]
None
None
***Warning*** Host None via ssh is down
コード:EDITED
@parallel(pool_size=20)
def coll():
print env.hosts
print env.host
print env.gateway
if _is_ssh_ok(env.host):
d = patt()
def doitnow():
p=Pool(20)
with open('ytj_sto.hn','r') as f:
for line in f.readlines():
line = line.strip()
if not len(line) or line.startswith('#'):
continue
env.gateway = line.split(':')[0]
env.hosts = line.split(':')[1].split(',')
result = p.apply_async(coll, args=())
result.get()
p.close()
p.join()
: 私は問題を解決-gファブ-Hを使用していた、おかげですべての
def fabfun(Hosts,Gate,des,func1):
with settings(hide('running'), warn_only=True):
local(("fab -H %s -g %s -f %s %s ") % (Hosts,Gate,des,func1))
p=Pool(20)
starttime = time.asctime(time.localtime(time.time()))
print('Waiting for all job done...%s' % starttime)
with open('ytj_sto.hn','r') as f:
for line in f.readlines():
line = line.strip()
if not len(line) or line.startswith('#'):
continue
Hosts = line.split(':')[1]
Gate = line.split(':')[0]
p.apply_async(fabfun, args=(Hosts,Gate,des,func1))
p.close()
p.join()
ここで、コールしようとしているファブリックタスク(「patt」)はありますか?そして '_is_ssh_ok'をどのように実装しましたか? – 2ps