【发布时间】:2011-11-19 02:29:38
【问题描述】:
基本问题
- 我正在构建一个应用程序,并希望在将其部署到 EC2 时获得一些帮助
- 有人告诉我应该使用 capistrano
- 我的下一步是什么?
关于应用程序
- 简单的 Rails 应用程序 (3.1.1)
- 简单节点应用 (0.4.2)
- redis 在 rails 和 node (2.0.4) 之间进行通信
- nginx 反向代理 rails 和 node (1.0.6)
- 数据库目前是sqlite(但可能会在不久的将来升级到mysql或mongo)
-
一个nginx.conf文件如下:
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { proxy_pass http://localhost:3000/; } location /events/ { proxy_pass http://localhost:3001/; proxy_buffering off; proxy_read_timeout 1000s; } } }
关于 EC2 实例
- ec2-12-34-56-789.compute-1.amazonaws.com
- 基本的 64 位 Amazon Linux t1.micro(直到一切正常,然后我会找到其他地方进行部署;可能是 EC2,可能是机架空间,可能是完全不同的东西)
关于我的部署平台
- OSX 10.6.8
-
将以下内容存储在 ~/.ec2/ 中(可能需要移动才能让 capistrano 工作)
cert-123456789ABCDEF0123456789ABCDEF0.pem pk-123456789ABCDEF0123456789ABCDEF0.pem ec2-keypair -
目前有以下 deploy.rb (但它不起作用)
set :application, "clashcentral" set :repository, "git@github.com:HairyMezican/GameLobby.git" set :branch, "master" set :repository_cache, "git_cache" set :deploy_via, :remote_cache set :ssh_options, { :forward_agent => true } set :scm, :git ssh_options[:keys] = [File.join(ENV["HOME"], ".ec2", "ec2-keypair")] role :web, "ec2-12-34-56-789.compute-1.amazonaws.com" role :app, "ec2-12-34-56-789.compute-1.amazonaws.com" role :db, "ec2-12-34-56-789.compute-1.amazonaws.com", :primary => true
错误
- 我得到的原始错误是
connection failed for: ec2-12-34-56-789.compute-1.amazonaws.com (Net::SSH::AuthenticationFailed: Empty) - 当我在
set :user, "ec2-user"行中添加时,我得到的当前错误是failed: "sh -c 'if [ -d /u/apps/clashcentral/shared/git_cache ]; then cd /u/apps/clashcentral/shared/git_cache && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd && git clean -q -d -x -f; else git clone -q git@github.com:HairyMezican/GameLobby.git /u/apps/clashcentral/shared/git_cache && cd /u/apps/clashcentral/shared/git_cache && git checkout -q -b deploy cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd; fi'" on ec2-12-34-56-789.compute-1.amazonaws.com
【问题讨论】:
-
目前,当我运行“cap deploy”或“cap deploy:setup”时,我被告知“连接失败:ec2-12-34-56-789.compute-1.amazonaws。 com (Net::SSH::AuthenticationFailed: Empty)"
-
可以直接ssh到服务器吗?
-
是的; “ssh -i ~/.ec2/ec2-keypair ec2-user@ec2-12-34-56-789.compute-1.amazonaws.com”让我进入实例上的 SSH 屏幕
-
我建议edit将实际的错误信息放入问题中。
-
感谢您的建议;它已被编辑
标签: deployment amazon-ec2 nginx capistrano