क्या बिल्ट-इन linked_files का उपयोग करके भूमिका के आधार पर विभिन्न फाइलों को लिंक करने के लिए Capistrano 3 को कॉन्फ़िगर करना संभव है?

मेरे पास worker भूमिका वाले सर्वर हैं, जिनके लिए वेब-सामान से संबंधित फ़ाइलें लिंक होने की आवश्यकता नहीं है (यानी sitemap.xml फ़ाइल)।

0
Mike Szyndel 27 अगस्त 2016, 22:44

2 जवाब

सबसे बढ़िया उत्तर

संक्षिप्त उत्तर: नहीं, Capistrano में चर (जैसे :linked_files) वैश्विक हैं और प्रति मेजबान/भूमिका के अलग-अलग मान नहीं हो सकते हैं।

आप संभवतः अपने स्वयं के कस्टम कार्यान्वयन के साथ deploy:symlink:linked_files और deploy: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 में इंजेक्ट करते हैं
2
Matt Brictson 8 सितंबर 2016, 04:18

no_release: true फाइलों को लिंक करना छोड़ देगा। यह मेरे मामले में web भूमिका के लिए पर्याप्त था क्योंकि हम वहां केवल रखरखाव पृष्ठ अपलोड करते हैं।

0
Unknown_Guy 6 मई 2020, 16:57