सवाल महाराज सर्वोत्तम अभ्यास / प्रश्न


मैं कठपुतली का उपयोग और प्यार करता हूँ। मैं एक नई कंपनी में चले गए और वे शेफ को अपना रहे हैं। तो मैं शेफ सीखने की कोशिश कर रहा हूं लेकिन मुझे इसे एक साथ चिपकाने में कठिनाई हो रही है क्योंकि मैं अब भी कठपुतली में सोचता हूं =)

ये मेरे प्रश्न हैं:

  • क्या रूबी डीएसएल, जेएसओएन, या प्रबंधन कंसोल से भूमिकाएं स्थापित करना बेहतर है? एक ही काम करने के कई तरीके क्यों हैं?
  • क्या आप कुकबुक को उपनिर्देशिका में व्यवस्थित कर सकते हैं? उदाहरण: हमारे पास कस्टम सॉफ़्टवेयर है कि मैं एक कुकबुक लिखना चाहता हूं और उसमें चिपकना चाहता हूं: शेफ-रेपो / कुकबुक / ourcompanystuff / customsoftwarecookbook यह एक अच्छा अभ्यास होगा?
  • क्या मैं प्रत्येक प्रकार की भूमिका के लिए एक कुकबुक बनाता हूं जो निर्दिष्ट करता है कि यह क्या करता है? क्या मेरे पास इन कुकबुक में अन्य कुकबुक शामिल हैं (यानी मेरी वेबसर्वर भूमिका के लिए कुकबुक में अपाचे कुकबुक शामिल है)। मुझे यकीन नहीं है कि कैसे कुकबुक अंतर-निर्भरता और विरासत को संभाला जाता है।
  • क्या पपेट के बाहरी नोड वर्गीकरण की तरह कुछ भी है ताकि नोड स्वचालित रूप से अपनी भूमिका निर्धारित कर सकें?
  • ऐसा लगता है कि आप चाकू के साथ या प्रबंधन कंसोल के भीतर चीजों को कॉन्फ़िगर कर सकते हैं, या JSON फ़ाइलों को संपादित कर सकते हैं? यह मेरे लिए बहुत भ्रमित है क्यों चीजों को करने के कई तरीके हैं, यह लकड़हारा है! क्या एक या दूसरे का उपयोग करने का कोई कारण है? कठपुतली से आ रहा है ऐसा लगता है कि इन उपकरणों के साथ गलती से गलत तरीके से कॉन्फ़िगर करना आसान होगा (यानी कुछ बाहर छोड़ना)
  • मैं अपने देव क्लस्टर में शेफ के साथ स्वचालित रूप से नोड्स का प्रावधान कैसे कर सकता हूं? कठपुतली के साथ मैं एक वीएम को आग लगाता हूं जो पिल्परमास्टर से जुड़ता है और एक कठपुतली दौड़ से निकलता है और खुद को सेट करता है (भूमिका बाहरी नोड वर्गीकृत द्वारा निर्धारित की जाती है)। मैं शेफ के साथ ऐसा कैसे करूं? एक शेफ सर्वर से बांधने वाले पेम / आरबी फाइलों के साथ शेफ स्थापित करें, मैन्युअल रूप से नोड को चाकू के साथ अपनी भूमिकाएं बताएं या प्रबंधन इंटरफ़ेस में इसे संपादित करें, और फिर स्वयं को सेट करने के लिए शेफ-क्लाइंट रन को बंद कर दें?

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

ओप्सकोड पर दस्तावेज़ ठीक हैं, लेकिन कठपुतली के रूप में लगभग उतना ही महान नहीं है। क्या कोई अन्य अच्छा शेफ संसाधन है जो मेरी खोजों में गायब हो सकता है?


47
2017-09-23 20:27


मूल


एक पोस्ट में बहुत सारे सवाल हैं। प्रत्येक को अपने आप में विभाजित करने पर विचार करें। यह पूरी तरह से समुदाय के लिए बेहतर है और आपको बेहतर, अधिक विस्तृत उत्तर भी मिलेगा। - Wesley


जवाब:


आपके सवालों के जवाब।

इस जवाब में, "शेफ" या "शेफ" आमतौर पर क्लाइंट फॉर्म में उत्पाद शेफ को संदर्भित करता है। "सीईईएफ" शेफ सॉफ्टवेयर, इंक ओपीएसकोड को संदर्भित करता है 2013 में शेफ सॉफ्टवेयर, इंक का नाम बदल दिया गया

यह स्पष्ट नहीं है कि रूबी डीएसएल, जेएसओएन, या प्रबंधन कंसोल से भूमिकाएं स्थापित करना बेहतर है या नहीं? एक ही काम करने के कई तरीके क्यों हैं?

एक ही चीज़ करने के कई तरीके हैं क्योंकि लोगों के पास अलग-अलग वर्कफ़्लो हैं। आप वर्कफ़्लो चुनते हैं जो आपके पर्यावरण के लिए सबसे अच्छा है। मुझे बताएं कि मतभेद क्या हैं ताकि आप एक सूचित निर्णय ले सकें।

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

knife role from file myrole.rb

यह JSON को भूमिका को परिवर्तित करता है और इसे सर्वर पर संग्रहीत करता है। यदि आपके पास एक ऐसा वातावरण है जो शेफ रिपोजिटरी को लागू करता है जहां आपकी भूमिका सत्य के स्रोत के रूप में रहती है, तो यह काफी अच्छी तरह से काम करती है।

जेएसओएन शेफ सर्वर स्टोर क्या है, इसलिए आप सीधे प्रबंधन कंसोल में जेएसओएन भी संपादित करते हैं। चाकू को अपलोड करने के लिए इसे ठीक से पहचानने के लिए रूबी डीएसएल की तुलना में अधिक फ़ील्ड की आवश्यकता होती है। वे विवरण वेब यूआई के माध्यम से कुछ डिग्री के लिए छिपे हुए हैं।

संपादन भूमिकाओं के लिए वेबूई / प्रबंधन कंसोल का उपयोग करने का नुकसान यह है कि वे आपके स्थानीय संस्करण नियंत्रण प्रणाली में नहीं हैं जबतक कि आप उन्हें सर्वर से डाउनलोड न करें। आप चाकू के साथ ऐसा कर सकते हैं:

knife role show myrole -Fj

-Fj "जेएसओएन प्रारूप में प्रदर्शित करने के लिए चाकू को बताता है।" यदि आप चाहें तो आउटपुट को .json फ़ाइल पर रीडायरेक्ट कर सकते हैं।

अद्यतन करें: स्थानीय शेफ भंडार में फ़ाइलों के साथ काम करने के लिए अतिरिक्त चाकू आदेश हैं। वर्तमान में ये आदेश केवल JSON प्रारूप फ़ाइलों का समर्थन करते हैं। ए समुदाय आरएफसी खुला है जो इन प्लगइन के लिए रूबी डीएसएल के लिए समर्थन जोड़ने को संबोधित करेगा। वर्कफ़्लो का संक्षिप्त सारांश यहां दिया गया है।

सर्वर और स्थानीय फ़ाइल के बीच सामग्री अंतर की जांच करें।

knife diff roles/myrole.json

एक JSON प्रारूपित भूमिका फ़ाइल अपलोड करें। roles/ पथ आवश्यक है। यह सर्वर पर एक ही एपीआई एंडपॉइंट पर मैप किया जाता है।

knife upload roles/myrole.json

रिपॉजिटरी में फ़ाइल की सामग्री को ओवरराइट करने वाले सर्वर से सामग्री डाउनलोड करें।

knife download roles/myrole.json

ये आदेश आते हैं knife-essentials, जो शेफ क्लाइंट पैकेज में बनाया गया है।

क्या आप कुकबुक को उपनिर्देशिका में व्यवस्थित कर सकते हैं? उदाहरण के लिए- हमारे पास कस्टम सॉफ़्टवेयर है कि मैं एक कुकबुक लिखना चाहता हूं और उसमें चिपकना चाहता हूं: शेफ-रेपो / कूकबुक / ourcompanystuff / customsoftwarecookbook यह एक अच्छा अभ्यास होगा?

नहीं। चाकू की अपेक्षा है कि कुकबुक कहाँ रहें क्योंकि यह सर्वर पर कुकबुक अपलोड करने के लिए एपीआई का उपयोग करता है। यह knife.rb के साथ सेट है cookbook_path। शेफ के पुराने संस्करणों में, आप कुकबुक के लिए पथों की एक सरणी निर्दिष्ट कर सकते हैं, लेकिन इसे बहिष्कृत किया जा रहा है क्योंकि इसे अधिक रखरखाव की आवश्यकता है और उपयोगकर्ताओं को भ्रमित कर रहा था।

सम्मेलन से हम ग्राहक विशिष्ट या साइट विशिष्ट कुकबुक का नाम कुकबुक में उपसर्ग के नाम से नामित करते हैं। आपके उदाहरण के लिए, यह होगा:

chef-repo/cookbooks/ourcompany_customsoftware

आप जो कर रहे हैं उसके आधार पर "ourcompany" के लिए कई अलग-अलग कुकीज हो सकती हैं।

आगे का संदर्भ:

क्या मैं प्रत्येक प्रकार की भूमिका के लिए एक कुकबुक बनाता हूं जो निर्दिष्ट करता है कि यह क्या करता है? क्या मेरे पास इन कुकबुक में अन्य कुकबुक शामिल हैं (यानी- मेरी वेबसर्वर भूमिका के लिए कुकबुक में अपाचे कुकबुक शामिल है)। मुझे यकीन नहीं है कि कैसे कुकबुक अंतर-निर्भरता और विरासत को संभाला जाता है।

भूमिकाओं और कुकबुक के बीच कोई सीधा संबंध या निर्भरता नहीं है।

भूमिकाओं में एक रन सूची होती है, जो व्यंजनों और अन्य भूमिकाओं को निर्दिष्ट करती है जिन्हें उस भूमिका के किसी भी नोड पर लागू किया जाना चाहिए। नोड्स में एक रन सूची होती है जिसमें भूमिकाएं या व्यंजन शामिल हो सकते हैं। जब शेफ नोड पर चलता है, तो यह सभी भूमिकाओं और व्यंजनों के लिए रन सूची का विस्तार करेगा, और उसके बाद आवश्यक कुकबुक डाउनलोड करें। एक नोड रन सूची में:

recipe[apache2]

शेफ नोड के लिए apache2 cookbook डाउनलोड करेगा ताकि यह इस नुस्खा को लागू कर सके।

आपके बुनियादी ढांचे में भूमिका के लिए आपके पास एक कुकबुक विशिष्ट हो सकता है। आमतौर पर आपके पास कुकीज होंगे जो कुछ प्रकार की सेवाओं को स्थापित करने के लिए हैं जैसे apache2, mysql, redis, haproxy, आदि। फिर आप उन्हें उचित भूमिकाओं में डाल देंगे। यदि आपके पास कस्टम एप्लिकेशन विशिष्ट चीजें हैं जो भूमिका को पूरा करने के लिए होती हैं, तो आप इसे एक कस्टम कुकबुक (जैसे मैंने ऊपर संदर्भित) में लिख सकते हैं।

आगे का संदर्भ:

क्या कठपुतली बाहरी नोड वर्गीकृत की तरह कुछ भी है ताकि नोड स्वचालित रूप से अपनी भूमिका निर्धारित कर सकें?

"हाँ।" शेफ सर्वर स्वचालित रूप से नोड डेटा स्टोरेज (JSON में) करता है, और सर्वर स्वचालित रूप से खोज के लिए सभी नोड डेटा को अनुक्रमणित करता है।

आगे का संदर्भ:

ऐसा लगता है कि आप चाकू के साथ या प्रबंधन कंसोल के भीतर चीजों को कॉन्फ़िगर कर सकते हैं, या JSON फ़ाइलों को संपादित कर सकते हैं? यह मेरे लिए बहुत भ्रमित है क्यों चीजों को करने के कई तरीके हैं, यह लकड़हारा है! क्या एक या दूसरे का उपयोग करने का कोई कारण है?

शेफ सर्वर में एक विश्वसनीय API है जो JSON प्रतिक्रिया भेजता है और प्राप्त करता है। चाकू और प्रबंधन कंसोल प्रशासनिक दृष्टिकोण से एपीआई के साथ बातचीत के लिए उपयोगकर्ता इंटरफेस हैं।

आप जिस उपकरण को बेहतर पसंद करते हैं उसका उपयोग कर सकते हैं, हालांकि प्रबंधन कंसोल में चाकू जैसी कई सुविधाएं नहीं हैं। शेफ का उपयोग करने वाले अधिकांश लोग पावर और लचीलापन के लिए कमांड लाइन इंटरफ़ेस पसंद करते हैं, यहां तक ​​कि जो लोग विंडोज़ पर शेफ का उपयोग कर रहे हैं। इसके अलावा, चाकू एक प्लगइन आधारित उपकरण है जिसे आप शेफ सर्वर, या अपने इन्फ्रास्ट्रक्चर के अन्य हिस्सों के साथ बातचीत करने के लिए नए प्लगइन बना सकते हैं।

शेफ लाइब्रेरीज़ और प्राइमेटिव्स का एक सेट है, और एक एपीआई है। यह आपको कॉन्फ़िगरेशन प्रबंधन प्रणाली बनाने के लिए लचीलापन देता है जो आपके आधारभूत संरचना के लिए सबसे अच्छा काम करता है।

आगे की पढाई:

मैं अपने देव क्लस्टर में शेफ के साथ स्वचालित रूप से नोड्स का प्रावधान कैसे कर सकता हूं? कठपुतली के साथ मैं एक वीएम को आग लगाता हूं जो puppermatser से जुड़ता है और एक कठपुतली चलाने से बाहर निकलता है और खुद को सेट करता है (भूमिका बाहरी नोड वर्गीकृत द्वारा निर्धारित की जाती है)। मैं शेफ के साथ ऐसा कैसे करूं? - एक शेफ सर्वर से बांधने वाले पेम / आरबी फाइलों के साथ शेफ स्थापित करें, मैन्युअल रूप से नोड को चाकू के साथ अपनी भूमिकाएं बताएं या प्रबंधन इंटरफ़ेस में इसे संपादित करें, और फिर स्वयं को सेट करने के लिए शेफ-क्लाइंट रन को बंद कर दें?

आप चाकू बूटस्ट्रैप का उपयोग करना चाहेंगे। यह प्लगइन में बनाया गया है जो चाकू के साथ आता है। आप इसे इस तरह कहते हैं:

knife bootstrap 10.1.1.112 -x root -i ~/.ssh/root_id_rsa -r 'role[webserver]'

यह करेगा:

  • एसएसएच लक्ष्य प्रणाली (10.1.1.112) के रूप में root एक एसएसएच कुंजी का उपयोग कर उपयोगकर्ता (आप किसी अन्य उपयोगकर्ता के रूप में ssh कर सकते हैं और फिर उपयोग करें --sudo)।
  • रूबी स्थापित करें
  • शेफ स्थापित करें
  • चाकू सर्वर के लिए शेफ कॉन्फ़िगरेशन फ़ाइल बनाएं, चाकू की कॉन्फ़िगरेशन (.chef / knife.rb) पढ़ें।
  • "सत्यापन" आरएसए निजी कुंजी की प्रतिलिपि बनाएँ, जो नोड शेफ सर्वर के साथ स्वचालित रूप से पंजीकरण करने के लिए उपयोग करेगा।
  • रन chef-client निर्दिष्ट सूचीबद्ध अल्पविराम से अलग रन का उपयोग कर। इस उदाहरण में केवल webserver भूमिका लागू होती है।

यह मानता है कि लक्ष्य प्रणाली का प्रावधान किया गया है, एक आईपी पता है और आप एसएसएच रूट के रूप में कर सकते हैं। आपकी स्थानीय नीतियों और प्रावधान प्रक्रिया के आधार पर, आपको यह समायोजित करने की आवश्यकता हो सकती है कि यह कैसे काम करता है। विकी पर चाकू बूटस्ट्रैप पृष्ठ इस बारे में और बताता है कि यह कैसे काम करता है।

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

knife bootstrap [ ... ] -d centos5-gems

ओपीएसकोड एक पूर्ण स्टैक शेफ क्लाइंट इंस्टॉलर और बूटस्ट्रैप टेम्पलेट पर काम कर रहा है जो इन मुद्दों में से कई को हटा देगा। यह बीटा परीक्षण में है और ओपोडोड शेफ स्थापित करने की सिफारिश करेगा।

चाकू में अमेज़ॅन ईसी 2 और रैकस्पेस क्लाउड जैसे कई सार्वजनिक क्लाउड कंप्यूटिंग प्रदाताओं के लिए प्लगइन भी हैं। नीलगिरी और ओपनस्टैक जैसे निजी क्लाउड वातावरण के लिए प्लगइन उपलब्ध हैं। VMware, Vsphere और अन्य के लिए प्लगइन भी हैं। आप विकी पर और जानकारी देख सकते हैं।

आगे की पढाई:

क्या कोई अन्य अच्छा शेफ संसाधन है जो मेरी खोजों में गायब हो सकता है?

महाराज दस्तावेज दस्तावेज़ीकरण का प्राथमिक स्रोत। सीईईएफ ओप्सकोड बोर्ड में विकी दस्तावेज को अद्यतन करने के लिए काम कर रहा है ताकि शेफ की वर्तमान रिलीज के अनुरूप हो और उन्नत जानकारी से शुरुआती जानकारी को उचित रूप से अलग किया जा सके। यह काफी जल्द पूरा किया जाना चाहिए।

सीईईएफ चलाता है शेफ बुनियादी बातों प्रशिक्षण, जो व्याख्यान और अभ्यास के साथ 2 दिवसीय कक्षा आधारित तकनीकी प्रशिक्षण पाठ्यक्रम है। सार्वजनिक प्रशिक्षण पाठ्यक्रम समय-समय पर पेश किए जाते हैं, और प्रशिक्षण के लिए सामग्री ओपन ट्रेनिंग प्रोग्राम के साथ पंजीकरण करके निःशुल्क उपलब्ध होती है। पंजीकरण की आवश्यकता है ताकि सीईईएफ यह पता लगा सके कि लोगों में क्या रूचि है, और उन लोगों से संपर्क करें जो सामग्री के नए रिलीज, या नए सार्वजनिक वर्गों के बारे में साइन अप करते हैं।

सीईईएफ का ओपन ट्रेनिंग प्रोग्राम:

मैं कभी-कभी अपने ब्लॉग पर शेफ के बारे में टिप्स, चाल और मार्गदर्शिका पोस्ट करता हूं: http://jtimberman.housepub.org/। मेरे पास एक श्रृंखला भी है जिसे "त्वरित सुझाव"

सीईईएफ ग्राहक सहायता साइट पर सहायता और समर्थन प्राप्त कर सकते हैं:

शेफ उपयोगकर्ता समुदाय अतिरिक्त सहायता का एक उत्कृष्ट स्रोत है:

अतिरिक्त संसाधन उपलब्ध हैं सीईईएफ की वेबसाइट। आशा है कि ये आपकी मदद करेगा।


81
2017-09-25 05:31



यह एक मूल्यवान संसाधन है, कृपया इसे अधिक बार लिंक करें। - Pooyan Khosravi