2012-01-30 8 views
2

カピストラの設定は次のとおりです。通常のユーザーではsshですが、ファイルを作成するにはsudo権限が必要な場所に展開してください。capistrano sudoを使って内部コマンドを実行する

sudoを使用して特定のcapistranoコマンドrun "cd #{configuration[:releases_path]} && #{decompress(remote_filename).join(" ")} && rm #{remote_filename}"を実行します。それを乗り越えるためのすてきな方法はありますか?

def distribute! 
    upload(filename, remote_filename) 
    run "cd #{configuration[:releases_path]} && #{decompress(remote_filename).join(" ")} && rm #{remote_filename}" 
end 

答えて

4

私はあなたがcapistranoの中で "sudo"機能を使用できると信じています。

def distribute! 
    upload(filename, remote_filename) 
    sudo "cd #{configuration[:releases_path]} && #{decompress(remote_filename).join(" ")} && rm #{remote_filename}" 
end 
+0

おかげで、私は、コードを変更することなく、何らかの方法 '配布!'メソッドをオーバーライドすることができますか? ( 'sudo cd' dosent work)。 –

0

次の回避策が適用されました。

task :self_own_dirs do 
    sudo "chown -R #{user} #{releases_path}/.." 
end 

before 'deploy:update_code', 'deploy:self_own_dirs'

関連する問題