2014-12-19 3 views
0

저는 여러 호스트와 병렬로 명령을 실행하기 위해 파이썬 패브릭을 사용하고 있습니다.파이썬 패브릭은 여러 컴퓨터에서 명령을 실행합니다

다음과 같은 시나리오가 있습니다.

def list1(): 
    env.hosts=[H1,H2,H3] 
def myfunction(): 
    #login into H1 and execute a command and wait for certain string. 
    #once get the string login to H2 and H3 in parallel and execute some other command 

지금 내가 H1의 명령을 실행해야하고 곧 내가 H2와 H3 모두 다른 명령을 실행해야 실행되는 동안 내가 H1 출력의 일부 원하는 문자열을 얻을 일부 출력 기대하고있다. 모두 리눅스 머신입니다. 이 같은

fab -f fabfile.py -P list1 myfunction 

실행

올바른 방법이 아니다. 내가 이걸 얻을 수있는 방법이 있니?

감사합니다.

답변

1

내가 원하는 것을 이해했는지 확실하지 않습니다. h1에 대한 작업을 실행하고 결과를 기다리고이 결과를 h2 및 h3에 대한 작업 입력으로 사용한다고 가정합니다. 다른 것을 원한다면이 대답을 잊어 버리고 질문을 다시하십시오.

팹 작업을 실행하는 파이썬 스크립트 (팹 파일이 아님)를 만드는 것이 좋습니다. 같은

뭔가 :

import fabfile  
from fabric.tasks import execute 

result = execute(fabfile.command_for_h1, hosts=[h1]) 
result_h1 = result[h1] 
execute(fabfile.command_for_h2_h3, hosts=[h2,h3], result_h1) 

의 핵심은 execute 방법이다.

+0

정확히 이것은 내가 찾고있는 것입니다. 감사합니다. @tobltobs – navaz

관련 문제