2016-08-27 10 views
0

組み込みのlinked_filesを使用して、ロールに基づいて異なるファイルをリンクするようにCapistrano 3を構成することはできますか?Capistrano 3の役割ベースのリンクファイル

私は役割がworkerのサーバーを持っていますが、ウェブ関連のファイルをリンクする必要はありません(sitemap.xmlファイル)。

答えて

2

短い回答:いいえ、Capistranoの変数(例::linked_files)はグローバルであり、ホスト/ロールごとに異なる値を持つことはできません。

deploy:symlink:linked_filesdeploy:check:linked_filesのタスクを独自のカスタム実装で再定義することで、動作させることができます。その実装は、例えば、異なる役割に対して異なるリンクを実行することができる。あなたがカピストラーノプラグインは:linked_files に物事を注入カピストラーノ「魔法」を失う

  • を書くためのコードがたくさんある

    1. 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 
      

      しかし、私は2つの理由から、この反対をお勧めします

  • +0

    ありがとう、素晴らしい要約。私は 'deploy:symlink:linked_files'の後に実行され、' web'ロールでのみ呼び出される余分なタスクを追加しました。 –

    関連する問題