Я пытаюсь настроить capistrano для легкого развертывания моего приложения rails3. Я довольно новичок в рельсах.
Все работает как надо, за исключением того, что я пытаюсь перезапустить автономный пассажирский сервер.
Я запускаю redmine на том же сервере, поэтому я следовал http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/, чтобы запустить несколько версий ruby / rails. Это работает нормально, пока я не попытаюсь заставить capistrano перезапустить пассажирский сервер.
Проблема в том, что 'sudo' не пропускает настройки среды (как показано на: sudo изменяет PATH - почему? )
Все работает, если я могу использовать 'rvmsudo' вместо 'sudo', так как rvmsudo передает правильную информацию о среде. Но если я использую «rvmsudo» в своем развертывании Captistrano, он зависнет в ожидании моего пароля sudo.
Я хотел бы реализовать try_rvmsudo, который работает точно так же, как try_sudo, где он отправляет пароль, если его просят. но я не могу найти какую-либо информацию о том, как это сделать.
Вот команда перезапуска, которую я пытаюсь использовать:
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: