2013-07-02 6 views
9

इस लिए एक समान प्रश्न Theres, लेकिन नहीं कर सकते काम करने के लिए यह प्रबंधन: मैं बस एक env चर सेट करना चाहते हैं, तो यह उपयोग करें:शेफ का उपयोग कर पर्यावरण परिवर्तक कैसे सेट करें?

execute "start zookeeper" do 
    cwd "/opt/zookeeper-3.4.5/bin" 
    command "./zkServer.sh start" 
    environment "JVMFLAGS" => "-Xmx#{heap_jvm} -Xms#{heap_jvm}" 
    user "root" 
    action :run 
end 

मैं भी "export JVMFLAGS='-blabla'" को पार्टी का उपयोग कर की कोशिश की है, लेकिन अभी भी इसे चलाता चर के साथ सेट कोई भी के साथ sh। क्या मेरी समस्या को चर की जांच करने से रोकने में कुछ समस्या है? मैं एक टेम्पलेट की तरह श इस्तेमाल कर सकते हैं और JVMFLAGS की ocurrence की जगह ... लेकिन मैं अगर एक बेहतर समाधान theres जाँच करना चाहते हैं ..

उत्तर

7

आप रूबी के माध्यम से वातावरण चर की स्थापना होने के ठीक पहले ब्लॉक पर अमल करने की कोशिश की है? शेफ वास्तव में using ENV की सिफारिश करता है (उस पृष्ठ पर नोट देखें)।

ENV['JVMFLAGS'] = "-Xmx#{heap_jvm} -Xms#{heap_jvm}" 

एक और संभावना है कि JVMFLAGS को कमांड में जोड़ना है।

execute "start zookeeper" do 
    [...] 
    command "JVMFLAGS=-Xmx#{heap_jvm} -Xms#{heap_jvm} ./zkServer.sh start" 
    [...] 
end 
+1

मैंने 'एनएनवी [...]' की कोशिश की, हालांकि 'योनि प्रावधान' चलाने के बाद, 'निर्यात MY_ENV_VAR' चलाना कोई परिवर्तनीय सेट नहीं दिखाता है। –

+0

और यह नहीं होना चाहिए। एनवी चर केवल वर्तमान प्रक्रिया और उसके बच्चों के लिए सेट हैं। –

+1

मैं देख रहा था कि ** सिस्टम ** env var - http://stackoverflow.com/questions/6284517/how-can-you-use-a-chef-recipe-to-set-an-environment- चर/14917841 # comment34443452_14917841। मैं एक अलग जवाब की तलाश में था। –

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

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