将rails应用程序部署到AWS

时间:2014-09-17 09:41:49

标签: ruby-on-rails ruby-on-rails-3 amazon-web-services ssh capistrano3

目前,我使用capistrano3通过现有的ssh密钥(XXXXX.pem)将我的rails应用程序部署到AWS 我已经完成了AWS服务器设置(例如:ruby,rails,sqlite3安装和..etc) 但是,我遇到了一些我无法弄清楚的问题。 首先,我使用 $ cap install 来生成deploy.rb ...等。 在config / deploy.rb =>

https://github.com/Gtar69/games/blob/master/config/deploy.rb

在config / deploy / staging.rb

https://github.com/Gtar69/games/blob/master/config/deploy/staging.rb

但是,当我尝试 $ cap staging deploy 到AWS时,显示

INFO[6b5414be] Running /usr/bin/env mkdir -p /tmp/GameStore/ on 54.241.249.27
DEBUG[6b5414be] Command: /usr/bin/env mkdir -p /tmp/GameStore/
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing on host 54.241.249.27: Authentication failed for user ubuntu@54.241.249.27
/home/chris/.rvm/gems/ruby-2.0.0-p481/gems/net-ssh-2.9.1/lib/net/ssh.rb:219:in `start'
/home/chris/.rvm/gems/ruby-2.0.0-p481/gems/sshkit-1.5.1/lib/sshkit/backends/connection_pool.rb:50:in `call'
/home/chris/.rvm/gems/ruby-2.0.0-p481/gems/sshkit-1.5.1/lib/sshkit/backends/connection_pool.rb:50:in 

任何人都可以帮忙吗? 谢谢 !

1 个答案:

答案 0 :(得分:0)

由于错误,似乎capistrano不能ssh到服务器。您是否为正在尝试连接的服务器设置了无密码ssh?

无密码ssh身份验证是mentioned here in capistrano docs。您可以通过在命令行上调用它来轻松地测试它:

ssh ubuntu@<server_ip>

您应该立即登录到服务器(没有密码提示或任何内容)。如果有打嗝 - 那么我认为你应该努力解决这个问题。

除了身份验证之外,capistrano还需要ssh代理转发,这可能会让新用户感到困惑。

为了解决这个问题,我创建了一个capistrano-ssh-doctor插件。它有助于解决capistrano&lt; - &gt; ssh问题。对于输出,你会得到一份详细的清单,列出哪些内容有效,哪些内容似乎卡住了,应该解决。