2016-04-10 2 views
0

Я пытаюсь развернуть приложение rails на локальной виртуальной машине, которая запускает Ubuntu 14 LTS. Я использую nginx и phusion-пассажир. Кроме того, я использую capistrano gem для развертывания.Развертывание Rails-приложения на сервере Ubuntu с использованием Capistrano gem

Я добавил локальный ключ ssh к авторизованным ключам виртуальной машины.
Также у меня нет проблем с подключением к моей виртуальной машине через SSH так:
SSH [email protected]

Однако, когда я пишу:

bundle exec cap production deploy 

Я получаю следующее сообщение об ошибке:

cap aborted! 

Net::SSH::Disconnect: connection closed by remote host 

EOFError: end of file reached 

Tasks: TOP => rbenv:validate 

Мой deploy.rb файл:

server "192.168.0.8", port: 80, roles: %i(:web :app :db), primary: true 
set :log_level, :debug 

set :application, "mySimpleBlog" 
set :repo_url, "[email protected]:NeilAlishev/mySimpleBlog.git" 
set :user,   "neil" 
set :linked_files, fetch(:linked_files, []).push("config/database.yml", "config/secrets.yml") 
set :linked_dirs, fetch(:linked_dirs, []).push("log", "tmp/pids", "tmp/cache", "tmp/sockets", 
    "vendor/bundle", "public/system", "public/uploads") 
set :deploy_to,  "/home/#{fetch(:user)}/src/#{fetch(:application)}" 

set :rbenv_type, :user 
set :rbenv_ruby, "2.2.4" 
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} "\ 
    "RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec" 
set :rbenv_map_bins, %w(rake gem bundle ruby rails) 
set :rbenv_roles, :all 

namespace :deploy do 
    desc "Restart application" 
    task :restart do 
    on roles(:app), in: :sequence, wait: 5 do 
     execute :touch, release_path.join("tmp/restart.txt") 
    end 
    end 

    after :publishing, "deploy:restart" 
    after :finishing, "deploy:cleanup" 
end 

Мой развернуть/production.rb файл:

set :stage, :production 
server "192.168.0.8", user: "neil", roles: %w(web app db) 
role :app, %w([email protected]) 
role :web, %w([email protected]) 
role :db, %w([email protected]) 

Мой nginx.conf файл:

server { 
listen 80; 
server_name 192.168.0.8; 
charset utf-8; 
rails_env production; 
passenger_enabled on; 
root /home/neil/mySimpleBlog/current/public; 
} 
+0

Может вы пытаетесь найти решения в [этой теме] (http://stackoverflow.com/questio нс/33567498/Capistrano-развернуть-ошибки-время-развертывание к Ubuntu-сервер)? – BoraMa

+0

Вы уверены, что сможете использовать SSH на сервере таргетинга? – qcam

+0

Когда я просто набираю ssh neil @ address_of_the_server Я обращаюсь к серверу без проблем. – Neil

ответ

0

Изменение production.rb как это,

role :app, 'address_of_the_server', { 
:ssh_options => { 
:keys => 'key_path(like ~/.ssh/key_name.pem)' 
} 
} 

role :web, 'address_of_the_server', { 
:ssh_options => { 
:keys => 'key_path(like ~/.ssh/key_name.pem)' 
} 
} 

role :db, 'address_of_the_server', { 
:ssh_options => { 
    :keys => 'key_path(like ~/.ssh/key_name.pem)' 
} 
} 
+0

Не помогло, получите ту же ошибку ( – Neil

Смежные вопросы