मैं इस उत्तर को उन्मुख करने जा रहा हूं जैसे कि प्रश्न था "शेफ-सोलो के फायदे क्या हैं" क्योंकि यह सबसे अच्छा तरीका है जो मैं दृष्टिकोणों के बीच के अंतर को कवर करना जानता हूं।
मेरी सारांश सिफारिश दूसरों के अनुरूप है: यदि आप एक डायनामिक, वर्चुअलाइज्ड वातावरण का प्रबंधन करने की आवश्यकता है तो शेफ-सर्वर का उपयोग करें जहां आप अक्सर नोड जोड़ते और हटाते रहेंगे। एक शेफ सर्वर भी एक अच्छा CMDB है , अगर आपको एक की आवश्यकता है। यदि आपके पास एक कम गतिशील वातावरण है जहां नोड्स बहुत बार नहीं बदलेंगे, लेकिन भूमिकाएं और व्यंजनों का उपयोग करेंगे तो शेफ-सोलो का उपयोग करें। आपके वातावरण का आकार और जटिलता कमोबेश अप्रासंगिक है। दोनों पैमाने बहुत अच्छी तरह से।
यदि आप शेफ-सोलो को तैनात करते हैं, तो rsync, 'गिट पुल', या कुछ अन्य बेकार फ़ाइल स्थानांतरण तंत्र के साथ एक क्रोनजॉब का उपयोग करें प्रत्येक नोड पर शेफ रिपॉजिटरी की पूरी प्रतिलिपि बनाए रखने के लिए। क्रोनजॉब को आसानी से (ए) बिल्कुल नहीं चलाया जाना चाहिए और (बी) रन नहीं, लेकिन स्थानीय रिपॉजिटरी को सिंक किए बिना। प्रत्येक नोड के लिए एक json फ़ाइल के साथ अपने महाराज भंडार में एक नोड / निर्देशिका जोड़ें। आपका क्रोनजॉब उतना ही परिष्कृत हो सकता है जितना आप सही नोडफाइल की पहचान करने के संदर्भ में चाहते हैं (हालांकि मैं केवल $ $ (hostname -s) की सिफारिश करूंगा। आप भी एक opscode खाता बना सकते हैं और होस्ट किए गए शेफ के साथ क्लाइंट कॉन्फ़िगर कर सकते हैं, यदि इसके लिए सामुदायिक कुकबुक डाउनलोड करने और कंकाल बनाने के लिए चाकू का उपयोग करने में सक्षम होने के अलावा कोई अन्य कारण नहीं है।
इस दृष्टिकोण के कई फायदे हैं, इसके अलावा स्पष्ट "एक सर्वर को प्रशासित नहीं करना" है। आपका स्रोत नियंत्रण सभी कॉन्फ़िगरेशन परिवर्तनों का अंतिम मध्यस्थ होगा, रिपॉजिटरी में सभी नोड्स और रनलिस्ट शामिल होंगे, और प्रत्येक सर्वर पूरी तरह से स्वतंत्र होने के कारण कुछ सुविधाजनक परीक्षण परिदृश्यों की सुविधा देता है।
शेफ-सर्वर एक छेद का परिचय देता है जहां आप कुकबुक को अपडेट करने के लिए "चाकू अपलोड" का उपयोग करते हैं, और आपको इस छेद को अपने आप को पैच करना होगा (जैसे पोस्ट-पोस्ट हुक के साथ) या जोखिम साइट में किसी व्यक्ति द्वारा चुपचाप ओवरराइट किया जा रहा है जो "चाकू अपलोड" करता है अपने लैपटॉप पर पुराने स्थानीय भंडार से एक अप्रचलित नुस्खा है। यह शेफ-सोलो के साथ होने की संभावना कम है, क्योंकि सभी परिवर्तन सीधे मास्टर रिपॉजिटरी के सर्वर से सिंक किए जाएंगे। यहाँ मुद्दा अनुशासन और सहयोगियों की संख्या है। यदि आप एक एकल डेवलपर या बहुत छोटी टीम हैं, तो एपीआई के माध्यम से कुकबुक अपलोड करना बहुत जोखिम भरा नहीं है। यदि आप अच्छे नियंत्रण नहीं रखते हैं, तो एक बड़ी टीम में यह हो सकता है।
इसके अतिरिक्त, शेफ-सोल के साथ आप अपने सभी नोड्स की भूमिकाओं, कस्टम विशेषताओं और runlists को अपने मुख्य शेफ रिपॉजिटरी में नोड.जेसन फ़ाइलों के रूप में संग्रहीत कर सकते हैं। शेफ-सर्वर के साथ, भूमिकाओं और रनलिस्ट को एपीआई का उपयोग करके मक्खी पर संशोधित किया जाता है। शेफ-सोलो के साथ, आप इस जानकारी को संशोधन नियंत्रण में ट्रैक कर सकते हैं। यह वह जगह है जहाँ स्थिर और गतिशील वातावरण के बीच संघर्ष स्पष्ट रूप से देखा जा सकता है। यदि आपकी नोड्स की सूची (चाहे वह कितनी भी लंबी हो) अक्सर बदलती नहीं है, तो पुनरीक्षण नियंत्रण में यह डेटा होना बहुत उपयोगी है। दूसरी ओर, यदि आप बार-बार नए नोड्स पैदा कर रहे हैं और पुराने को नष्ट कर रहे हैं (कभी भी उनके hostname या fqdn को देखने के लिए नहीं) तो यह सब संशोधन नियंत्रण में रखना सिर्फ एक अनावश्यक परेशानी है, और बदलाव करने के लिए एपीआई होना बहुत सुविधाजनक है। शेफ-सर्वर में डायनामिक क्लाउड वातावरण को प्रबंधित करने की दिशा में एक संपूर्ण विशेषता है, जैसे "चाकू बूटस्ट्रैप" पर नाम विकल्प जो आपको नोड की पहचान करने के लिए डिफ़ॉल्ट तरीके के रूप में fqdn को बदलने देता है। लेकिन एक स्थिर वातावरण में, वे विशेषताएं सीमित मूल्य की होती हैं, विशेष रूप से सब कुछ के साथ संशोधन नियंत्रण में भूमिकाएं और रनवेस्ट होने की तुलना में।
अंत में, लगभग कोई अतिरिक्त कार्य के लिए रेसिपी परीक्षण वातावरण मक्खी पर स्थापित किया जा सकता है। आप सर्वर पर चलने वाले क्रोनॉजर्स को अक्षम कर सकते हैं और इसके स्थानीय रिपॉजिटरी में सीधे परिवर्तन कर सकते हैं। आप शेफ-सोलो को चलाकर बदलावों का परीक्षण कर सकते हैं और आप देखेंगे कि सर्वर कैसे उत्पादन में खुद को कॉन्फ़िगर करेगा। एक बार जब सब कुछ जांच लिया जाता है, तो आप परिवर्तनों में जांच कर सकते हैं और स्थानीय क्रोनोजर को फिर से सक्षम कर सकते हैं। रेसिपी लिखते समय, हालांकि, आप "खोज" एपीआई का उपयोग नहीं कर पाएंगे, जिसका अर्थ है कि यदि आप डायनेमिक रेसिपी (जैसे लोडब्लैन्सर) लिखना चाहते हैं, तो आपको इस सीमा के आस-पास हैक करना होगा, डेटा को जोंस फाइलों से इकट्ठा करना होगा। आपकी नोड्स / निर्देशिका, जो कम सुविधाजनक होने की संभावना है और पूर्ण सीएमडीबी में उपलब्ध कुछ डेटा की कमी होगी। एक बार फिर, अधिक गतिशील वातावरण डेटाबेस-संचालित दृष्टिकोण का पक्ष लेंगे, स्थानीय डिस्क पर json फ़ाइलों के साथ कम गतिशील वातावरण ठीक रहेगा। एक सर्वर वातावरण में जहां एक शेफ रन केंद्रीय डेटाबेस के लिए एपीआई कॉल करना चाहिए, आप उस डेटाबेस के भीतर सभी परीक्षण वातावरणों के प्रबंधन पर निर्भर होंगे।
अंतिम का उपयोग आपात स्थिति में भी किया जा सकता है। यदि आप उत्पादन सर्वर पर किसी महत्वपूर्ण समस्या का निवारण कर रहे हैं और इसे कॉन्फ़िगरेशन परिवर्तन के साथ हल कर रहे हैं, तो आप सर्वर के भंडार पर तुरंत परिवर्तन कर सकते हैं, फिर इसे मास्टर पर ऊपर की ओर धकेलें।
वे शेफ-सोलो के प्राथमिक लाभ हैं। कुछ अन्य हैं, जैसे कि किसी सर्वर को प्रबंधित करने या होस्ट किए गए शेफ के लिए भुगतान नहीं करना, लेकिन वे अपेक्षाकृत छोटी चिंताएं हैं।
योग करने के लिए: यदि आप गतिशील और अत्यधिक वर्चुअलाइज्ड हैं, तो शेफ-सर्वर कई बेहतरीन सुविधाएँ प्रदान करता है (अन्यत्र कवर) और अधिकांश शेफ-सोलो लाभ कम ध्यान देने योग्य होंगे। हालांकि, विशेष रूप से अधिक पारंपरिक वातावरण में शेफ-सोलो के लिए कुछ निश्चित, अक्सर अप्रयुक्त फायदे हैं। ध्यान दें कि क्लाउड पर तैनात होने का मतलब यह नहीं है कि आपके पास एक गतिशील वातावरण है। यदि आप, उदाहरण के लिए, अपने सॉफ़्टवेयर के नए संस्करण को जारी किए बिना अपने सिस्टम में अधिक नोड्स नहीं जोड़ सकते हैं, तो आप शायद गतिशील नहीं हैं। अंत में, एक उच्च-स्तरीय परिप्रेक्ष्य से सीएमडीबी किसी भी संख्या में केवल सिस्टम प्रशासन से संबंधित चीजों के लिए उपयोगी हो सकता है और कॉन्फ़िगरेशन जैसे कि टीमों के बीच लेखांकन और सूचना-साझाकरण। शेफ-सर्वर का उपयोग करना अकेले उस सुविधा के लिए इसके लायक हो सकता है।