2016-12-21 8 views
0

ファブリックを使用して、リモートサーバでいくつかの基本コマンドを実行しようとしています。以前はFabricを使用していなかったので、いくつかのコマンドを実行する際にいくつかの問題に直面しています。ファブリックを使用してルートとしてコマンドを実行する方法

リモートサーバーに接続し、特定のディレクトリにファイルを作成してから、uwsgiサーバーを再起動する必要があります。

私は最初の2つのタスクを実行できますが、rootユーザーとしてサーバーにsshしないため、サービスを再開できません。

これは私が何をすべきかです:私はsudoの秀含めると

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') 

からコマンドを、FABスクリプトが終了されることはありません。私はちょうどルート(端末内)としてログインすることになる。

答えて

1

どうしてですか?sudo service uwsgi restartsudoconfigured to allow thatであれば、パスワードの入力を要求されずに動作するはずです。

+0

私がこれを試してみると、sudoersファイルにrootがありません。この事件は報告される。警告:sudo()は、 'mkdir -p/home/new_folder/test; sudo service uwsgi restart'を実行中にゼロ以外の戻りコード1を受け取りました。 – user1919

+1

ターゲットホストに手動でsshを実行し、実行するコマンドを実際に実行できることを確認できますか?また、すでにrootとして(もしそうであるように)走っているなら、 'sudo'は必要ありません!削除してください。 – 9000

関連する問題