कैसे एक नुस्खा में बावर्ची पर्यावरण खोजने के लिए?


30

मैं केवल cookbook_file संसाधन चलाना चाहता हूं, यदि वर्तमान वातावरण "देव" है। इसे कैसे व्यक्त किया जा सकता है?

प्रलेखन यह सुझाव देता है:

एक नुस्खा में, इस तरह एक कोड ब्लॉक उपयोगी होगा:

qa_nodes = search(:node,"chef_environment:QA")      
qa_nodes.each do |qa_node|                          
    # Do useful specific to qa nodes only
end

लेकिन मुझे यकीन नहीं है कि मैं यही चाहता हूं - तथ्य यह है कि एक लूप गलत लगता है।

जवाबों:


46

नोड पर chef_environment रूबी विशेषता (एक नियमित बावर्ची विशेषता नहीं) में देखें:

if node.chef_environment == "dev"
  # stuff
end

7
विशेष रूप से, chef_environment बावर्ची :: नोड ऑब्जेक्ट पर एक विधि है जो नोड के वातावरण का मान लौटाता है। यह एक नोड विशेषता नहीं है और इसे इस तरह से भ्रमित नहीं किया जाना चाहिए।
jtimberman

धन्यवाद @jtimberman मैंने हमेशा एक वातावरण को नोड का एक गुण होने के बारे में सोचा था लेकिन यह समझ में नहीं आता है कि यह नहीं है।
टिम पॉटर

3
महान, यह काम करता है। तो मेरे मूल प्रश्न का उत्तर जोड़ना है only_if { node.chef_environment == "dev" }। की पुष्टि की।
स्टीव बेनेट

काम करने के लिए यह जवाब नहीं मिल सका। यह वाक्य रचना मेरे लिए काम करती है: if "#{node.chef_environment}" == "dev"
spuder

2

एक और सुरुचिपूर्ण तरीका:

if ['production','development'].include? node.chef_environment
    #do something here
end
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.