Capistrano问我密码,但我无法输入密码

时间:2015-01-17 10:02:25

标签: ruby deployment capistrano

我正在使用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

但是我一直在打这个并且我不能在底部输入密码 - 禁用键盘:

problem with password

另外,为什么部署后不会自动调用重启?我必须手动调用它。

2 个答案:

答案 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'