我不希望在通过Capistrano远程执行的任何命令中使用sudo。具体而言,当我运行
我从一个相当完整的deploy.rb文件开始,但一旦出现问题,就将其缩小。这是我的最小版本,仍然显示
cap deploy:setup
时,在第一个mkdir
命令期间会要求输入我的sudo密码。我在deploy.rb文件中添加了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}
应该将命令转换为sudo模式。我将其包含在sudo_test
中,因为 Capistrano Rails 任务可能也会使用它,而问题很可能就源自此。 - YWCA Hellocap deploy:setup
在我不想要使用 sudo 时尝试使用它。cap deploy:setup
是一个预设的配方;我不打算对其进行修改。相反,我需要确定为什么选项:use_sudo
不起作用。 - YWCA Hello