我不希望对通过Capistrano执行的任何远程执行的命令使用sudo。具体来说,当我运行cap deploy:setup
时,我会在第一个mkdir
命令期间询问我的sudo密码。我在我的deploy.rb文件中添加了set :use_sudo, false
,但这没有什么区别。卡皮斯特拉诺使用sudo即使使用“set:use_sudo,false”
我开始时使用了一个相当完整的deploy.rb文件,但是一旦我开始出现问题,就会削减它。这是我最小的版本仍显示use_sudo
不受尊重:
# App Definitions
set :domain, '[server-ip]'
role :app, domain
role :web, domain
role :db, domain, :primary => true
set :user, "my_app"
set :use_sudo, false
task :sudo_test do
run "#{try_sudo} whoami"
end
运行cap sudo_test
结果我被提示输入sudo的我的密码。我在这里错过了什么(除了我已经退出的头发)?
谷歌发现
https://groups.google.com/forum/?fromgroups#!topic/capistrano/QNYnvW8obrg
与具有类似问题的人一个线程。线程中没有注明结论/解决方案。
那是什么'#{try_sudo}'位?如果你把它拿出来呢? – sbeam
如果':use_sudo'设置为'false','#{try_sudo}'应该_sudoize_该命令。我将它包含在'sudo_test'中,因为capistrano rails任务可能也会使用它,并且很可能出现问题的原因。 –
我们在我们的deploy.rb文件中使用'sudo -i'。 –
yeowzir