развертывание приложения nginx / rails / node на EC2 - PullRequest
2 голосов
/ 19 ноября 2011

Основная проблема

  • У меня есть приложение, которое я создаю, и я надеялся получить помощь в его развертывании на EC2
  • Мне сказали, что я должен использовать капистрано
  • Каковы мои следующие шаги?

О приложении

  • приложение для простых рельсов (3.1.1)
  • приложение простого узла (0.4.2)
  • redis для связи между рельсами и узлом (2.0.4)
  • nginx для реверсирования прокси и рельсов и узлов (1.0.6)
  • база данных в настоящее время sqlite (но, вероятно, будет обновлена ​​до MySQL или Монго в ближайшее время)
  • Файл 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

1 Ответ

1 голос
/ 19 ноября 2011

Полагаю, вам нужно добавить:

set :user, "ec2-user"

в файл deploy.rb, как показано здесь: http://wiki.dreamhost.com/Capistrano#Automate_Deployment_with_Capistrano_.28.22capify.22.29

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...