【发布时间】:2012-11-08 16:38:32
【问题描述】:
通过recent tutorial 使用 Git 为 Ruby 部署设置 AWS Elastic Beanstalk,我刚刚从我的 CI 服务器设置了一个 Elastic Beanstalk 环境。但是,应用程序无法启动。我查看了日志,发现 bundle install 失败并显示错误消息。
获取 git@github.com:example/private-repository.git 主机密钥验证失败。 致命:远端意外挂断 [31mGit 错误:/var/app/ondeck 目录中的命令
git clone 'git@github.com:example/private-repository.git' "/var/app/ondeck/vendor/cache/ruby/1.9.1/cache/bundler/git/private-repository-e4bbe6c2b13bb62664e39e345c1b01d80017934c" --bare --no-hardlinks失败。[0m
我的 Rails 应用程序的Gemfile 包含对托管在我在 Github 上的几个私有存储库上的 gemified 插件的引用。类似的东西
gem 'somegemname', :git => 'git@github.com:example/private-repository.git'
我在 Capistrano 部署中遇到过类似问题,通过设置 ssh_options[:forward_agent] = true 解决了这些问题。
AWS Elastic Beanstalk Ruby 容器支持通过放在.ebextensions 下的自定义.config 文件进行自定义配置。在这种情况下,设置 SSH 转发代理会有所帮助吗?在启动 Elastic Beanstalk 环境时,是否有其他替代方法可以访问私有 Github 存储库?
更新 1:
我刚刚检查了启动bundle install 的用户。发现脚本/opt/elasticbeanstalk/hooks/appdeploy/pre/10_bundle_install.sh 以root 用户身份启动bundle install。我尝试在/root/.ssh 下创建一个 SSH 密钥,并将它的 pub-key 添加到该存储库的 Github Deploy 密钥中。到目前为止没有运气。现在将尝试将 SSH 发布密钥添加到我在 Github 上的用户帐户,以便它适用于通过我的 Github 帐户访问的所有私有存储库。
【问题讨论】:
标签: ruby-on-rails ruby amazon-web-services amazon-elastic-beanstalk