【问题标题】:Is it possible for Capistrano to only link a file on some servers?Capistrano 是否可以仅链接某些服务器上的文件?
【发布时间】:2020-01-09 18:00:58
【问题描述】:

如果我有这样的事情:

config/deploy/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 仍然可以访问所有服务器?或者这是一个全有或全无的情况?

【问题讨论】:

    标签: ruby capistrano


    【解决方案1】:

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

    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,但也许有更好的方法。但是要知道这一点 - 我们需要知道两个服务器之间这个特定文件差异的上下文。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多