capistrano顺序重启
我将capistrano配置为跨三个物理服务器进行部署。 我想配置重启任务以顺序转到每个服务器并重新启动应用程序,而不是一次性转到所有服务器的默认方式。
这是当前的部署任务:
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
我在想这样的事情:
#this does not work task :sequential_restart do find_servers(:roles => :app).each restart end end
有任何想法吗?
我使用HOSTFILTER
环境变量执行非常类似的操作,该环境变量有效地将所有内容范围HOSTFILTER
在与filter匹配的主机上。
就像是
find_servers(:roles => :app).each do |server| ENV['HOSTFILTER'] = server.host restart end ENV['HOSTFILTER'] = nil
应该做的伎俩。
- Capistrano部署到同一服务器上的不同路径
- 使用master.key进行数据海洋部署的Rails 5.2:ActiveSupport :: MessageEncryptor :: InvalidMessage:ActiveSupport :: MessageEncryptor :: InvalidMessage
- 我如何使用冷冻Capistrano第2部分?
- 尝试将Rails 4应用程序部署到WebFaction,使用他们的文档并在本地获取错误
- 如何修改capistrano deploy以在Rails 3.0中自动运行迁移
- capistrano 3 + rvm1-capistrano3 rails 4.1 secrets.yml环境变量问题
- Rails App维护而不妨碍访客
- Unicorn无法写pid文件
- capistrano回滚是否会撤消迁移?