2013-11-22 7 views
0

В настоящее время работает Capistrano для развертывания:Capistrano: Нет серверов для .... puma.state не остановить

Окружающая среда: Capistrano 2.15.5

RAILS_ENV=uat cap deploy

2013-11-22 04:27:34 executing `puma:stop' 
* no servers for "cd /home/ubuntu/fancied-server/current; bundle exec pumactl -S /home/ubuntu/fancied-server/shared/sockets/puma.state stop" 

Мой Capistrano:

require "capistrano" 

set :rvm_ruby_string, :local   # use the same ruby as used locally for deployment 
set :rvm_autolibs_flag, "read-only"  # more info: rvm help autolibs 

before 'deploy:setup', 'rvm:install_rvm' # install RVM 
before 'deploy:setup', 'rvm:install_ruby' # install Ruby and create gemset, OR: 

if ENV['RAILS_ENV'] == 'uat' 
    # The address of the remote host on EC2 (the Public DNS address) 
    set :location, "54.252.151.190" 
    set :branch, "uat" 
    role :app, location 
    role :web, location 
    role :db, location, :primary => true 
    role :resque, location 
    role :rapns, location 

    #after 'deploy:stop', 'puma:stop' 
    #after 'deploy:start', 'puma:start' 
    #after 'deploy:restart', 'puma:restart' 

    # Ensure the tmp/sockets directory is created by the deploy:setup task and 
    # symlinked in by the deploy:update task. This is not handled by Capistrano 
    # v2 but is fixed in v3. 
    #shared_children.push('tmp/sockets') 

    _cset(:puma_cmd) { "#{fetch(:bundle_cmd, 'bundle')} exec puma" } 
    _cset(:pumactl_cmd) { "#{fetch(:bundle_cmd, 'bundle')} exec pumactl" } 
    _cset(:puma_state) { "#{shared_path}/sockets/puma.state" } 
    _cset(:puma_socket) { "unix://#{shared_path}/sockets/puma.sock" } 
    _cset(:puma_role) { :app } 
end 

namespace :deploy do 
    task :start, :roles => :web, :on_error => :continue do 
    if ENV['RAILS_ENV'] == 'uat' 
     if !puma.puma_pid_exists? 
     puma.start 
     else 
     puma.restart 
     end 
    else 
     run start_command 
    end 
    sleep 2 
    warmup_cache 
    end 
.... 


namespace :puma do 
    desc 'Start puma' 
    task :start, :roles => lambda { fetch(:puma_role) }, :on_no_matching_servers => :continue, :on_error => :continue do 
    run "cd #{current_path} && #{fetch(:puma_cmd)} #{start_options}", :pty => false 
    end 

    desc 'Stop puma' 
    task :stop, :roles => lambda { fetch(:puma_role) }, :on_no_matching_servers => :continue, :on_error => :continue do 
    run "cd #{current_path}; #{fetch(:pumactl_cmd)} -S #{state_path} stop" 
    end 

    desc 'Restart puma' 
    task :restart, :roles => lambda { fetch(:puma_role) }, :on_no_matching_servers => :continue, :on_error => :continue do 
    run "cd #{current_path}; #{fetch(:pumactl_cmd)} -S #{state_path} restart" 
    end 
end 

Итак, вопрос: i s сервер установлен правильно? Или как установить сервер, поэтому он перестанет беспокоиться о проблемах.

ответ

0

У меня нет способа проверить его прямо сейчас, но вы попытались переместить местоположение и роли сервера вне блока if.

Перед развертыванием (по крайней мере, в первый раз) всегда рекомендуется использовать развертывание крышки: проверьте. Он будет проверять, удовлетворяются ли основные зависимости, например, наличие правильных разрешений, проверка наличия svn/git и т. Д.

Для многоступенчатых развертываний Capistrano на самом деле обеспечивает более чистый способ определения ролей, серверов и другой конфигурации, сначала определяя роли в config/deploy.rb, а затем имеющий файл конфигурации, специфичный для среды, в config/deploy/.rb ( - среда). В качестве примера можно определить этапы по конфигурации/deploy.rb таким образом:

set :stages, %w(production staging) 
set :default_stage, "staging" 

И тогда вы могли бы определить конкретную конфигурацию среды, в своем конфигурационном файле. Например, конфигурации/развернуть/production.rb:

set :rails_env, 'production' 

namespace :deploy do 
    task :start do 
    # ... 
    end 

    task :stop do 
    # ... 
    end 

    task :restart do 
    # ... 
    end 
end 

Источник: https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension

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