장식

2013-06-27 7 views
1

적은 호스트와 직물 중첩 된 메소드를 호출 나는 모든 호스트에서이 완수하는 가장 좋은 방법은 무엇입니까,장식

@roles('production') 
def submethod(): 
    run('service restart') 


@roles('all') 
def deploy(): 
    put('somefile.conf') 
    submethod() 

내가) (배포 전화를 가지고 있지만, 모든 서비스가 다시 시작됩니다? @roles ('production')이 작동하지 않는 것 같습니다 ...

고마워요. 다른 작업에서 작업을 호출 할 경우

답변

1

, 당신은 execute를 사용해야하는 데 도움이

def submethod(): 
    run('service restart') 


@roles('all') 
def deploy(): 
    put('somefile.conf') 
    execute(submethod, roles=['production']) 

희망을.

+0

이 방법은 올바른 호스트에서 실행되지만 len (@roles ('all'))과 같은 시간에 20 번 실행됩니다. – avances123

+0

@runs_once를 사용할 수 있지만 프로덕션 환경에서는 한 번 실행됩니다 내가 원한다)하지만 다른 호스트에 somefile.conf를 넣으면 반복 될 수있다. 파일이 프로덕션 환경에서 실제로 복사되기 전에 서비스를 다시 시작한다는 의미입니다. – avances123