Tôi không muốn sử dụng sudo cho bất kỳ lệnh được thực thi từ xa nào thông qua Capistrano. Cụ thể, khi tôi chạy cap deploy:setup
, tôi được yêu cầu nhập mật khẩu sudo của mình trong lệnh mkdir
đầu tiên. Tôi đã thêm set :use_sudo, false
vào tệp deploy.rb của mình, nhưng điều này không tạo ra sự khác biệt.Capistrano sử dụng sudo ngay cả với "set: use_sudo, false"
Tôi bắt đầu với tệp deploy.rb khá hoàn chỉnh, nhưng đã bỏ nó xuống khi tôi bắt đầu gặp sự cố. Đây là phiên bản tối thiểu của tôi mà vẫn cho thấy use_sudo
không được tôn trọng:
# 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
chạy cap sudo_test
kết quả trong tôi được nhắc nhập mật khẩu sudo tôi. Tôi đang thiếu gì ở đây (ngoài mái tóc tôi đã rút ra)?
Google phát hiện
https://groups.google.com/forum/?fromgroups#!topic/capistrano/QNYnvW8obrg
Một chủ đề với một người nào đó có một vấn đề tương tự. Không có kết luận/độ phân giải nào được ghi trong chuỗi.
bit '# {try_sudo}' là gì? nếu bạn lấy nó ra thì sao? – sbeam
'# {try_sudo}' nên _sudoize_ lệnh nếu ': use_sudo' được đặt thành' false'. Tôi bao gồm nó trong 'sudo_test' bởi vì các nhiệm vụ đường ray capistrano có khả năng sử dụng nó là tốt, và có khả năng là nơi mà vấn đề bắt nguồn từ. –
Chúng tôi sử dụng 'sudo -i' trong tệp deploy.rb của chúng tôi. –
yeowzir