capistrano和ec2和github - 无法部署

时间:2013-03-01 13:54:49

标签: github ruby-on-rails-3.2 capistrano

我正在尝试使用capistrano将我的第一个webapp部署到EC2,并且repo在github上。但我面临的问题是" cap deploy:cold"。 deploy.rb粘贴在下面。以下是我遵循的步骤。

1)使用本地计算机上的ssh登录ec2实例。使用ssh-keygen生成的密钥,没有任何密码。

2)获取id_rsa.pub的内容并复制到github repo设置部署密钥。

3)然后从我的本地机器运行" cap deploy:cold"。我收到以下错误

user1 @ laptop:〜/ MyExample $ cap deploy:cold   * 2013-03-01 19:08:06执行deploy:cold'
* 2013-03-01 19:08:06 executing
部署:更新'  **交易:开始   * 2013-03-01 19:08:06执行`deploy:update_code'     更新所有服务器上的缓存结帐     在本地执行:" git ls-remote git@github.com:user1/MyExample.git HEAD" 权限被拒绝(publickey)。 致命:远程端意外挂断 * [deploy:update_code]回滚   *执行" rm -rf /var/www/MyExample.com/releases/20130301133835;真"     服务器:[" 181.73.124.219"]     [181.73.124.219]执行命令     命令在1186ms完成


设置:应用程序," MyExample.com" set:scm," git" set:repository," git@github.com:hisuser / example.git"

default_run_options [:pty] = true

设置:用户,' ubuntu' set:use_sudo,true set:deploy_to," / var / www /#{application}" set:deploy_via,:remote_cache

角色:网络," 181.73.124.219" 角色:app," 181.73.124.219" 角色:db," 181.73.124.219",:primary =>真

部署","部署:bundle_gems" 在" deploy之后:bundle_gems"," deploy:restart"

namespace:deploy do   任务:bundle_gems做     运行" cd#{deploy_to} / current&&捆绑安装vandor / gems"   结束   任务:开始做;结束   任务:停止做;结束   任务:restart,:roles => :app,:except => {:no_release =>真的}做     run"#{try_sudo} touch#{File.join(current_path,' tmp',' restart.txt')}"   结束 端

我在这里缺少什么?此外,任何可以提供详细步骤的URL /博客指针都会有所帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

我设法让它发挥作用。如日志所示, 在本地执行:“git ls-remote git@github.com:user1 / MyExample.git HEAD”

capistrano正在尝试运行上面的命令本地计算机而不是服务器上。在终端上运行上述命令也返回相同的错误 - 权限被拒绝(公钥)。

所以我必须将生成的id_rsa和id_rsa.pub从部署服务器复制到本地计算机。复制后,通过运行“ssh-add / path / to / keys”将其添加到正在使用的ssk键中。

添加这些密钥后,我能够继续前进。