Tengo capistrano configurado para implementar en tres servidores físicos. Me gustaría configurar la tarea de reinicio para ir secuencialmente a cada servidor y reiniciar la aplicación en lugar de la forma predeterminada de ir a todos los servidores a la vez.capistrano reinicios secuenciales
Aquí es la tarea de despliegue actual:
namespace :deploy do
task :start, :roles => :app, :except => { :no_release => true } do
run "cd #{current_path} && bundle exec unicorn_rails -C#{current_path}/config/unicorn.rb -E #{rails_env} -D"
end
task :stop, :roles => :app, :except => { :no_release => true } do
run "kill `cat #{current_path}/tmp/pids/unicorn.pid`"
end
task :restart, :roles => :app, :except => { :no_release => true } do
stop
sleep(10)
start
end
end
Pienso en algo como esto:
#this does not work
task :sequential_restart do
find_servers(:roles => :app).each
restart
end
end
alguna idea?