Capistrano 3基于角色的链接文件

时间:2016-08-27 19:44:13

标签: ruby-on-rails capistrano

是否可以将Capistrano 3配置为使用内置linked_files基于角色链接不同的文件?

我的服务器角色为worker,不需要链接与网页相关的文件(即sitemap.xml文件)。

2 个答案:

答案 0 :(得分:2)

简短回答:不,Capistrano中的变量(例如:linked_files)是全局的,并且每个主机/角色不能有不同的值。

您可以通过使用自己的自定义实现重新定义deploy:symlink:linked_filesdeploy:check:linked_files任务来使其工作。例如,该实现可以为不同的角色执行不同的链接。

Rake::Task["deploy:symlink:linked_files"].clear_actions

task "deploy:symlink:linked_files" do
  on release_roles(:web) do
    execute :ln, "-s", ...
    execute :ln, "-s", ...
    # etc.
  end
  on release_roles(:app) do
    execute :ln, "-s", ...
    execute :ln, "-s", ...
    # etc.
  end
end

但是,我建议不要这样做有两个原因:

  1. 编写很多代码
  2. 你失去了Capistrano“魔法”,而Capistrano插件将东西注入:linked_files

答案 1 :(得分:0)

no_release: true将跳过链接文件。对于我来说,web角色就足够了,因为我们仅在此处上传维护页面。