बूटस्ट्रैपिंग करते समय आप वातावरण में नोड्स असाइन कर सकते हैं, लेकिन मेरे पास पहले से ही _default में बैठे उत्पादन नोड्स का एक गुच्छा है।

मैं चाकू का उपयोग उन्हें अन्य वातावरणों को सौंपने के लिए कर सकता था या मैं प्रत्येक वातावरण के लिए एक भूमिका निभाने के बारे में सोच रहा था जिसमें एक नुस्खा है जो शेफ-क्लाइंट :: कॉन्फ़िगरेशन चलाता है और पर्यावरण विशेषता सेट करता है, तो मैं सिर्फ सही वातावरण में नोड्स असाइन कर सकता हूं भूमिका। मुझे लगता है कि एक भूमिका का उपयोग करने में समस्या अतिरिक्त हुप्स होगी जो मुझे टेस्ट किचन में चीजों को हुक करने के लिए कूदना होगा।

शेफ लोग आमतौर पर इस समस्या को कैसे हल करते हैं?

2
red888 23 सितंबर 2016, 20:41

1 उत्तर

सबसे बढ़िया उत्तर

शुरू करने के लिए सही जगह है knife exec एक ट्रांसफॉर्म स्क्रिप्ट के साथ।

यह शायद आपको शुरू करना चाहिए:

knife exec -E 'nodes.transform("roles:foo") {|n| n.chef_environment = "foo" }'

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

4
coderanger 24 सितंबर 2016, 04:35
क्या आपने कभी शेफ-क्लाइंट कुकबुक के माध्यम से वातावरण को नोड्स को सौंपा है? "लर्निंग शेफ" पुस्तक में इस पद्धति का उल्लेख है, लेकिन मैं केवल चाकू का उपयोग करने पर इसके लाभों को नहीं समझता।
 – 
red888
26 सितंबर 2016, 18:19
किताब नहीं पढ़ी है, इसलिए आपको और अधिक विशिष्ट होना होगा। आम तौर पर शेफ-क्लाइंट कुकबुक में चीजें क्लाइंट.आरबी कॉन्फिग को लिख रही होंगी जो कि बहुत बहुत अनुशंसित नहीं है क्योंकि यह लगातार शेफ सर्वर से जानकारी को ओवरराइड करेगा।
 – 
coderanger
27 सितंबर 2016, 00:10