2016-12-21 5 views
0

패브릭을 사용하여 원격 서버에서 일부 기본 명령을 실행하려고합니다. 나는 전에 패브릭을 사용하지 않았고 몇 가지 명령을 실행하는 데 어려움을 겪고 있습니다.패브릭을 사용하여 루트로 명령을 실행하는 방법

원격 서버에 연결하고 특정 디렉토리에 파일을 만든 다음 uwsgi 서버를 다시 시작해야합니다.

처음 두 가지 작업을 수행 할 수 있지만 루트 사용자로 서버에 ssh하지 않기 때문에 서비스를 다시 시작할 수 없습니다.

이 내가 할 것입니다 :

def staging(): 
    env.hosts = ['[email protected]_host'] 

def update_app(app_name): 
    with cd(git_folder): 
    with settings(warn_only=True): 
     sudo('mkdir -p /home/new_folder/test') 
     #sudo('sudo su -') # also tried this 
     sudo('service uwsgi restart') 

은 내가 sudo는 스와을 포함하는 경우 - 명령을 팹 스크립트가 완료되지 않습니다. 방금 터미널에 루트로 로그인해야합니다.

답변

1

sudo service uwsgi restart이 아닌가요? 그것은 sudo가 암호를 묻지 않고 configured to allow that을 것을 제공 작동합니다.

+0

내가 이것을 시도하면 얻을 수 있습니다 : 루트는 sudoers 파일에 없습니다. 이 사건은보고 될 것입니다. 경고 : sudo()는 'mkdir -p/home/new_folder/test; sudo service uwsgi restart'를 실행하는 동안 0이 아닌 반환 코드 1을 받았습니다! – user1919

+1

당신은 대상 호스트에 SSH를 _manually_하고 실제로 실행할 수있는 실행하는거야 명령 확인 할 수 있습니까? (이 보인다) 이미 루트로 실행하는 경우 또한, 당신은'sudo' 필요하지 않습니다! 제거해보십시오. – 9000