【发布时间】:2011-06-08 21:09:15
【问题描述】:
我正在尝试设置 capistrano 以轻松部署我的 rails3 应用程序。我对 Rails 很陌生。
除了我正在尝试重新启动独立乘客服务器之外,一切都正常运行。
我在同一台服务器上运行 redmine,所以我跟着 http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/ 运行多个版本的 ruby/rails。这工作正常,直到我尝试让 capistrano 重新启动乘客服务器。
问题是 'sudo' 没有通过环境设置(见:sudo changes PATH - why?)
如果我可以使用“rvmsudo”而不是“sudo”,一切都会正常工作,因为 rvmsudo 会传递正确的环境信息。但是,如果我在 Captisrano 部署中使用“rvmsudo”,它会挂起等待我的 sudo 密码。
我想实现一个与 try_sudo 完全相同的 try_rvmsudo,如果需要,它会在其中发送密码。但我似乎找不到任何关于这样做的信息。
这是我尝试使用的重启命令:
desc "Restart Passenger server"
task :restart, :roles => :app, :except => { :no_release => true } do
run <<-CMD
if [[ -f #{release_path}/tmp/pids/passenger.#{passenger_port}.pid ]];
then
cd #{deploy_to}/current && #{passenger_path}passenger stop -p #{passenger_port} --pid-file #{release_path}/tmp/pids/passenger.#{passenger_port}.pid;
fi
CMD
# restart passenger standalone on the specified port/environment and as a daemon
run "cd #{deploy_to}/current && rvmsudo #{passenger_path}passenger start -e #{rails_env} -p #{passenger_port} -a 127.0.0.1 -d --pid-file #{release_path}\
/tmp/pids/passenger.#{passenger_port}.pid"
end
它挂着说:
** [out :: snapshotroulette.com] [sudo] password for deployer:
【问题讨论】:
标签: ruby-on-rails-3 capistrano