我正在使用Capistrano来部署我的代码。 部署之后,我必须重新启动apache。我正在使用这段代码:
role :app, %w{deployer@ip}
server '91.185.209.70', user: 'deployer', roles: %w{app}, password: "password"
set :ssh_options, {
forward_agent: false,
auth_methods: %w(password),
password: 'password',
user: 'deployer',
}
namespace :deploy do
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
execute "sudo service apache2 restart"
end
end
end
但是我一直在打这个并且我不能在底部输入密码 - 禁用键盘:
另外,为什么部署后不会自动调用重启?我必须手动调用它。
答案 0 :(得分:0)
密码验证可以通过部署环境文件中的ask来完成(例如:config / environments / production.rb)
# Capistrano > 3.2.0 supports echo: false
ask(:password, nil, echo: false)
server '91.185.209.70',
user: 'deployer',
roles: %w{app},
password: fetch(:password)
http://capistranorb.com/documentation/faq/how-can-i-get-capistrano-to-prompt-for-a-password/
答案 1 :(得分:0)
我刚刚遇到这个问题,经过一段时间的搜索,我偶然发现了这个宝石:
https://github.com/kentaroi/sshkit-sudo
这很简单!
添加到Gemfile
:
gem 'sshkit'
软件包:
$ bundle
要求Capfile
:
require 'sshkit/sudo'