शेफ में, मैं भूमिका फ़ाइलों के भीतर विशेषताओं का उपयोग कैसे करूं?


13

मैं भूमिका फ़ाइलों में विशेषताओं को दस्तावेज़ के रूप में सेट करने में सक्षम हूं, लेकिन मैं पहले से ही उपयोग की जा रही विशेषताओं को रसोई की किताबों द्वारा निर्धारित करने में सक्षम नहीं हूं जो मैं उपयोग कर रहा हूं।

उदाहरण के लिए /roles/appserver.rb:

name "appserver"

run_list(%w{
  recipe[tomcat::default]
})

default_attributes(
  :tomcat => {
    :java_options => "-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=" + node[:tomcat][:log_dir]
  }
)

मुझे जो मिलता है वह है एक अपवाद बताते हुए महाराज 'नोड' विधि / चर नहीं पा सकते हैं।

धन्यवाद

जवाबों:


12

आप नहीं कर सकते। जब आप चाकू के साथ सर्वर पर भूमिका अपलोड करते हैं तो रूबी डीएसएल की भूमिका रूबी से जेएसएन में बदल जाती है। नोड ऑब्जेक्ट उपलब्ध नहीं है, क्योंकि यह एक बावर्ची चलाने के संदर्भ में संसाधित नहीं है।

यदि आप नोड विशेषताओं को संयोजित करना चाहते हैं, तो इसके बजाय, आपको एक नुस्खा में ऐसा करना चाहिए, उदाहरण के लिए:

"#{node[:tomcat][:java_options]}#{node[:tomcat][:log_dir]}"

0

आप require_relative 'base_role_file'किसी भूमिका के अंदर वास्तविक उपयोग कर सकते हैं और यह आवश्यक फ़ाइल आपके उपयोग के लिए कुछ वैश्विक चर निर्धारित कर सकती है। बहुत हॅकी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.