1

我正在尝试使用 capistrano 将我的第一个 webapp 部署到 EC2,并且 repo 在 github 上。但我面临“上限部署:冷”的问题。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:update' ** 事务:开始 * 2013-03-01 19:08:06 执行 `deploy:update_code'更新本地执行的所有服务器上的缓存结帐:“git ls-remote git@github.com:user1/MyExample.git HEAD”权限被拒绝(公钥)。致命:远程端意外挂断 * [deploy:update_code] 回滚 * 执行“rm -rf /var/www/MyExample.com/releases/20130301133835; true” 服务器:[“181.73.124.219”] [181.73.124.219 ] 执行命令命令在 1186 毫秒内完成deploy:cold'
* 2013-03-01 19:08:06 executing


设置:应用程序,“MyExample.com”设置:scm,“git”设置:存储库,“git@github.com:thisuser/example.git”

default_run_options[:pty] = true

设置:用户,'ubuntu' 设置:use_sudo,真实设置:deploy_to,“/var/www/#{application}”设置:deploy_via,:remote_cache

角色:web,“181.73.124.219”角色:app,“181.73.124.219”角色:db,“181.73.124.219”,:primary => true

在“部署”之后,“部署:bundle_gems”之后 在“部署:捆绑宝石”之后,“部署:重新启动”

命名空间:部署执行任务:bundle_gems 执行“cd #{deploy_to}/current && bundle install vandor/gems”结束任务:开始执行;结束任务:停止做;结束任务 :restart, :roles => :app, :except => { :no_release => true } 运行 "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')} "结束结束

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

谢谢。

4

1 回答 1

0

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

capistrano 正在尝试在本地机器上而不是在服务器上运行上述命令。在终端上运行上述命令也返回了相同的错误 - Permission denied (Public Key)。

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

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

于 2013-03-01T17:39:24.090 回答