2

如果我有这样的事情:

配置/部署/production.rb:

server myserver1 roles: %i[app web db]
server myserver2 roles: %i[app web db]
server myutilserver1 roles: %[util]

配置/部署.rb:

append :linked_files, 'all_servers_file.yml'
append :linked_files, 'util_server_file.yml'

是否有某种方法可以重做它,以便util_server_file.yml仅链接到myutilserver1,但all_servers_file.yml仍会访问所有服务器?或者这是一个全有或全无的情况?

4

1 回答 1

0

您可能可以为这些服务器定义额外的角色

server myserver1 roles: %i[app web db utils_server_file]
server myserver2 roles: %i[app web db all_servers_file]

然后指定每个任务应该在哪些角色上运行:

append :linked_files, 'all_servers_file.yml', roles: %i[all_servers_file]
append :linked_files, 'util_server_file.yml', roles: %i[utils_server_file]

这个解决方案虽然看起来很hacku,但也许有更好的方法。但是要知道这一点 - 我们需要知道两个服务器之间这个特定文件差异的上下文。

于 2020-01-09T21:03:09.777 回答