2009-07-20 14 views
76

कैपिस्ट्रानो रेसिपी में "भूमिकाएं" का उद्देश्य और कार्य क्या है?Capistrano में "भूमिका" वास्तव में क्या है?

role :app, 'somedomain.com' 
role :web, 'somedomain.com' 
role :db, 'somedomain.com', :primary => true 

तो यह एक भूमिका तरह लग रहा है मूल रूप से एक सर्वर जहां Capistrano कार्यान्वित आदेशों है: जब मैं नमूना व्यंजनों को देखो, मैं अक्सर कुछ इस तरह देखते हैं। यदि ऐसा है, तो इसे "होस्ट" या "सर्वर" के बजाय "भूमिका" क्यों कहा जाएगा?

उपरोक्त उदाहरण में, :app और :web भूमिकाओं के बीच क्या अंतर है?

:primary => true विकल्प क्या करता है?

उत्तर

60

भूमिकाएं आपको कैपिस्ट्रानो कार्यों को लिखने की अनुमति देती हैं जो केवल कुछ सर्वर पर लागू होती हैं। यह वास्तव में केवल बहु-सर्वर परिनियोजन पर लागू होता है। "ऐप", "वेब" और "डीबी" की डिफ़ॉल्ट भूमिकाओं का भी आंतरिक रूप से उपयोग किया जाता है, इसलिए उनकी उपस्थिति वैकल्पिक नहीं है (AFAIK)

आपके द्वारा प्रदान किए गए नमूने में, कोई कार्यात्मक अंतर नहीं है।

"प्राथमिक => सत्य" एक विशेषता है जो कस्टम कार्यों में सर्वर निर्दिष्ट करने में और ग्रैन्युलरिटी की अनुमति देती है।

task :migrate, :roles => :db, :only => { :primary => true } do 
    # ... 
end 

वृहद व्याख्या के लिए Capistrano वेबसाइट @https://github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role देखें:

यहाँ एक कार्य परिभाषा भूमिका विनिर्देश का एक उदाहरण है।

+2

यह भी ध्यान दें: आपकी लाइन ': केवल => {: प्राथमिक => सत्य} होनी चाहिए 'मुझे लगता है ... या प्रश्न में' भूमिका 'कमांड का उपयोग करना चाहिए: इसके बजाय मास्टर => सत्य '। मेरा मानना ​​है कि ये गुण पूरी तरह से मुक्त रूप हैं। –

3

"प्राथमिक => सत्य" विकल्प इंगित करता है कि डेटाबेस सर्वर प्राथमिक सर्वर है। यह महत्वपूर्ण है जब आप MySQL के साथ प्रतिकृति का उपयोग करना चाहते हैं, उदाहरण के लिए। यह आपको एक और दर्पण डेटाबेस सर्वर बनाने की अनुमति देता है जिसका उपयोग स्वचालित विफलता के लिए किया जा सकता है। इसका उपयोग यह तय करने के लिए भी किया जाता है कि कौन से डेटाबेस सर्वर मॉडल माइग्रेशन चलाना चाहिए (क्योंकि उन परिवर्तनों को फेलओवर सर्वर पर दोहराया जाएगा)। यह लिंक इसे थोड़ा और स्पष्ट करता है: https://github.com/capistrano/capistrano/wiki/2.x-from-the-beginning#back-to-configuration

संबंधित मुद्दे