我希望在我的生产环境中有一个单独的实例来运行Sidekiq。
目前我有db
,web
和app
个实例,而app
实例正在处理sidekiq,这被证明是错误的举动。
我创建了一个角色为redis
,redis_master
和sidekiq
的新实例,但是当我进入SSH时,没有任何内容正在运行,如果我对cap deploy
执行了bundle install
,在app
期间,它表示“dotenv”仅适用于角色为app
的实例,并且会回滚。
如何设置?我是否需要将应用角色添加到Sidekiq实例才能生效?
修改
好的,我通过将sidekiq
角色添加到运行passenger
的实例来使其工作。我还手动删除了apache
和rubber
角色,因此它无法启动应用服务器。我现在面临的唯一问题是sidekiq
在部署期间不会自动启动和停止并重新启动{{1}}。需要弄清楚。
看起来不错。
答案 0 :(得分:0)
这些安全角色吗?
我建议您在ansible playbook中设置rails和ruby角色(单独),在新的sidekiq-prod实例中运行playbook,然后执行cap prod deploy
如果您使用带有capistrano的rails应用程序来执行sidekiq部署,则可以在lib/capistrano/tasks/sidekiq.cap
的设置中访问rails env:
export RAILS_ENV=<%= fetch(:rails_env) %>