Возможно ли, чтобы Capistrano связывал файл только на некоторых серверах? - PullRequest
2 голосов
/ 09 января 2020

Если у меня есть что-то вроде этого:

config / deploy / production.rb:

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

config / deploy.rb:

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

Is Есть какой-то способ переделать это так, чтобы util_server_file.yml был связан только с myutilserver1, но all_servers_file.yml все еще распространяется на все серверы? Или это ситуация "все или ничего"?

1 Ответ

0 голосов
/ 10 января 2020

Вы, вероятно, можете определить дополнительные роли для этих серверов

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, и, возможно, есть лучший способ. Но чтобы знать это - нам нужно знать контекст, определяющий разницу между файлами на двух серверах.

...