我不希望對通過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