Tôi có capistrano được cấu hình để triển khai trên ba máy chủ vật lý. Tôi muốn cấu hình nhiệm vụ khởi động lại để tuần tự đi đến mỗi máy chủ và khởi động lại ứng dụng chứ không phải là cách mặc định đi đến tất cả các máy chủ cùng một lúc.capistrano sequential restart
Dưới đây là nhiệm vụ triển khai hiện tại:
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
Tôi đang nghĩ đến một cái gì đó như thế này:
#this does not work
task :sequential_restart do
find_servers(:roles => :app).each
restart
end
end
Bất kỳ ý tưởng?