32

Capistrano 3 でリモートサーバー上で sudo でタスクを実行するレシピを書きたいです。

Capistrano 2 では、たとえば次のように実行できます。

default_run_options[:pty] = true

task :hello do
  run "#{sudo} cp ~/something /something"
end

Capistrano 3 で見つけたもの:

set :pty, true

しかし、sudo で実行されているタスクを実行できませんでした。

sudo でタスクを実行するにはどうすればよいですか?

4

5 に答える 5

21

Capistrano 3 ガイドでは、パスワードなしの sudo の使用を推奨しています。これにより、権限の低いユーザーが PTY 経由でパスワードを入力しなくても sudo コマンドを実行できるようになります。

上で Kentaro が書いたタスクを使用して、次のようなものを /etc/sudoers ファイルに追加できます。

deploy ALL=NOPASSWD:/bin/cp ~/something /something

http://www.capistranorb.com/documentation/getting-started/authentication-and-authorisation/#toc_8

于 2013-11-19T15:57:21.797 に答える
3

あなたは「ユーザーが終了するように」したい、のように

as "root" do
  execute :something
end
于 2014-09-17T05:43:28.143 に答える
1

本当に使用する必要がある場合は、で呼び出される適切なコマンドに makeのsudoようなコマンドをいつでもマップできます。deploy ユーザーが sudoers にいる場合、期待どおりに動作します。SSHKit.config.command_map[:rm] = 'sudo rm'execute :rmrmsudo

于 2015-01-14T03:51:10.340 に答える