Создайте грабли в Rails_App/lib/capistrano/tasks/nginx.rake
и вставьте ниже код.
namespace :nginx do
%w(start stop restart reload).each do |command|
desc "#{command.capitalize} Nginx"
task command do
on roles(:app) do
execute :sudo, "service nginx #{command}"
end
end
end
end
Затем отправьте ssh на удаленный сервер и откройте файл
sudo vi /etc/sudoers
и вставьте эту строку (после строки %sudo ALL=(ALL:ALL) ALL
)
deploy ALL=(ALL:ALL) NOPASSWD: /usr/sbin/service nginx *
Или, как в вашем случае,
deploy ALL=(ALL:ALL) NOPASSWD: /etc/init.d/nginx *
Здесь я предполагаю, что ваш пользователь развертывания - deploy
.
Вы также можете добавить сюда другие команды, для которых вам не требуется вводить пароль. Например
deploy ALL=(ALL:ALL) NOPASSWD: /usr/sbin/service nginx *, /etc/init.d/mysqld, /etc/init.d/apache2