2011-12-05 15 views
6

का उपयोग करने के लिए कैसे तैनात है मैं Capistrano को कॉन्फ़िगर करने की कोशिश कर रहा हूं ताकि यह हमारे सर्वर सेटअप के लिए काम करे। हम सिम्फनी परियोजनाओं को तैनात कर रहे हैं इसलिए मैं कैपिफोनी का भी उपयोग कर रहा हूं। मुझे अभी भी अनुमतियों के साथ कुछ समस्याएं आ रही हैं।Capistrano उपयोग_sudo और admin_runner

हमारे सर्वर पर प्रत्येक प्रोजेक्ट एक प्रोजेक्ट उपयोगकर्ता के रूप में चलता है, इसलिए प्रत्येक प्रोजेक्ट में इसका अपना उपयोगकर्ता होता है। इसलिए मैंने use_sudo को कॉन्फ़िगर किया और इसे सही पर सेट किया और मैंने प्रोजेक्ट के उपयोगकर्ता होने के लिए admin_runner को कॉन्फ़िगर किया। लेकिन यह अभी भी काम नहीं कर रहा है इसलिए मैंने नियमित चलाने के प्रयास में try_sudo का उपयोग शुरू करने के लिए कैपिफोनी को संशोधित किया। जिसने इसे थोड़ा बेहतर काम किया। लेकिन मैं इस मामले में क्या उपयोग करना है इसके बारे में थोड़ा उलझन में हूं। आपके पास try_sudo, sudo और run है। लेकिन किसके लिए उपयोग-मामले की आवश्यकता है?

  • आप रन का उपयोग करते हैं मुझे लगता है कि यह हमेशा अपने स्थानीय उपयोगकर्ता
  • try_sudo मैं जाँच करेगा अगर use_sudo झंडा सच है यदि ऐसा है तो यह नहीं तो कहीं भी होगी sudo कमांड का उपयोग करेगा लगता है हो जाएगा स्थानीय उपयोगकर्ता का प्रयोग करें। आप admin_runner कॉन्फ़िगर किया है यह admin_runner
  • sudo के रूप में विन्यस्त उपयोगकर्ता के लिए sudo हमेशा sudo करने की कोशिश करेंगे होगा

अब मेरी समस्या तैनाती है: सिमलिंक विधि यह भी सिर्फ एक नियमित रूप से चलाने के आदेश है, इसलिए यह स्थानीय उपयोगकर्ता के रूप में निष्पादित करता है, जो वेबसाइट देखने का प्रयास करते समय अनुमति समस्याओं को देता है।

तो क्या कोई मुझे बता सकता है कि 3 आदेशों का मेरा विवरण सही है या नहीं? और यह भी जानता है कि admin_runner और use_sudo का उपयोग कैसे किया जाता है, ताकि सिम्लिंक भी सही तरीके से किया जा रहा हो (और कैपिस्ट्रानो द्वारा किए गए सभी अन्य आदेश भी)?

तरह सादर,

दान इस तरह के एक मंदा जवाब दान के लिए

+0

ध्यान दें कि कैपिफोनी अभी तक ': use_sudo' या 'admin_runner' का ख्याल नहीं रखता है। –

उत्तर

4

क्षमा याचना। Capistrano की आपकी समझ सही है। ध्यान दें कि :use_sudo ध्वज डिफ़ॉल्ट true पर डिफ़ॉल्ट है।

_cset(:run_method)  { fetch(:use_sudo, true) ? :sudo : :run } 

और lib/Capistrano/व्यंजनों/deploy.rb:

def try_sudo(*args) 
    options = args.last.is_a?(Hash) ? args.pop : {} 
    command = args.shift 
    raise ArgumentError, "too many arguments" if args.any? 

    as = options.fetch(:as, fetch(:admin_runner, nil)) 
    via = fetch(:run_method, :sudo) 
    if command 
    invoke_command(command, :via => via, :as => as) 
    elsif via == :sudo 
    sudo(:as => as) 
    else 
    "" 
    end 
end 

शायद

Capistrano 2.11.2 में, आप lib/Capistrano/विन्यास/variables.rb मिल जाएगा आपकी अनुमति समस्या में आपका सर्वर शामिल है, जो एक सामान्य उपयोगकर्ता के रूप में चल रहा है, रिलीज निर्देशिका की सामग्री को पढ़ने में सक्षम नहीं है कि आपका current सिम्लिंक इंगित कर रहा है?