【发布时间】:2016-08-30 13:14:45
【问题描述】:
我只在一台服务器上部署了 Symfony2 应用程序几个月,它非常完美,但随着我添加了更多服务器,当我想同时更新所有服务器时遇到了困难,但运行一些命令只执行一次(如数据库迁移、资产生成和推送到 S3)。
这是我的服务器:
server '192.168.0.100', user: 'ubuntu', roles: %w{app db web toto}
server '192.168.0.101', user: 'ubuntu', roles: %w{app db web}
这是我在deploy.rb 中的一项自定义任务:
namespace :specific do
task :command do
on roles(:all) do |host|
if host.roles.include?(:toto)
invoke 'symfony:console', 'one:specific:command'
end
end
end
end
使用cap --roles=toto staging deploy,但我的两台服务器中只有一台更新了。
我试过这样的过滤方法:
namespace :assets do
task :increment do
set :filter, :roles => %w{toto}
invoke 'symfony:console', 'one:specific:command'
end
end
和其他方法,从堆栈溢出答案复制粘贴,但没有找到任何匹配的答案????
【问题讨论】: