【发布时间】:2019-03-02 22:59:46
【问题描述】:
我正在准备 capistrano 将 ruby on rails 应用程序部署到 AWS。应用程序服务器将在 bastian 主机之后。
我有两台服务器 server1 和 server2。我想在 server1 上部署和运行 puma、nginx,并在 server2 上运行 resque worker 和 resque 调度程序。我知道角色,这是我目前的配置:
# deploy/production.rb
web_instances = [web-instance-ip]
worker_instances = [worker-instance-ip]
role :app, web_instances
role :web, web_instances
role :worker, worker_instances
set :deploy_user, ENV['DEPLOY_USER'] || 'ubuntu'
set :branch, 'master'
set :ssh_options, {
forward_agent: true,
keys: ENV['SSH_KEY_PATH'],
proxy: Net::SSH::Proxy::Command.new("ssh -i '#{ENV['SSH_KEY_PATH']}' #{fetch(:deploy_user)}@#{ENV['BASTIAN_PUBLIC_IP']} -W %h:%p"),
}
set :puma_role, :app
我不确定我应该做什么或如何编写任务,方法是确保 puma 启动、重启仅在 server1 上完成,resque、resque 调度程序启动重启等仅在 server2 上处理。虽然在每个实例上都完成了诸如提取最新代码、捆绑安装等常见任务?
【问题讨论】:
标签: ruby-on-rails nginx puma capistrano3