mal*_*uri 0 ruby-on-rails nginx
有一些deploy.rb:
namespace :deploy do
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
# Your restart mechanism here, for example:
# execute :touch, release_path.join('tmp/restart.txt')
sudo "service nginx restart"
end
end
after :publishing, :restart
end
Run Code Online (Sandbox Code Playgroud)
如您所见,我想在发布后重新启动我的Nginx服务器.但是我收到以下错误:
cap aborted!
SSHKit::Command::Failed: sudo exit status: 1
sudo stdout: Nothing written
sudo stderr: sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)
据我所知,我需要为sudo命令指定密码; 但我没有在代码中存储密码,我使用SSH.我错了吗?我该如何解决?提前致谢.
Capistrano 3不支持带密码的sudo,并且你不能在只有Capistrano 3 gem的Capistrano任务中使用带密码的sudo.
但是,我创建了一个gem,sshkit-sudo,这是一个带密码输入的sudo的SSHKit扩展(Capistrano 3依赖于SSHKit).
添加gem 'sshkit-sudo'到应用程序的Gemfile,bundle install并添加require 'sshkit/sudo'到应用程序的Capfile中.
然后您的代码将无需更改即可运行.
| 归档时间: |
|
| 查看次数: |
1195 次 |
| 最近记录: |