शुरुआती लोगों के लिए कठपुतली ट्यूटोरियल: कठपुतली क्या है और इसका उपयोग कैसे करें?

कठपुतली सीखने से पहले, आइए समझते हैं:

कॉन्फ़िगरेशन प्रबंधन क्या है?

कॉन्फ़िगरेशन प्रबंधन सॉफ़्टवेयर और कंप्यूटर सिस्टम (उदाहरण के लिए सर्वर, स्टोरेज, नेटवर्क) को ज्ञात, वांछित और सुसंगत स्थिति में बनाए रखने की प्रक्रिया है। यह परियोजना प्रबंधन और ऑडिट उद्देश्यों के लिए सिस्टम स्थिति के सटीक ऐतिहासिक रिकॉर्ड तक पहुंच की भी अनुमति देता है।

सिस्टम प्रशासक ज्यादातर दोहराए जाने वाले कार्य करते हैं जैसे सर्वर स्थापित करना, उन सर्वरों को कॉन्फ़िगर करना आदि। ये पेशेवर स्क्रिप्ट लिखकर इस कार्य को स्वचालित कर सकते हैं।

हालांकि, जब वे बड़े पैमाने पर बुनियादी ढांचे पर काम कर रहे हों तो यह एक मुश्किल काम है। ऐसे मुद्दों को हल करने के लिए पपेट जैसे कॉन्फ़िगरेशन प्रबंधन उपकरण को पेश किया गया था।

कठपुतली क्या है?

कठपुतली कॉन्फ़िगरेशन प्रबंधन प्रक्रिया को केंद्रीकृत और स्वचालित करने के लिए एक सिस्टम प्रबंधन उपकरण है। पपेट का उपयोग सॉफ़्टवेयर परिनियोजन उपकरण के रूप में भी किया जाता है। यह एक ओपन-सोर्स कॉन्फ़िगरेशन प्रबंधन सॉफ़्टवेयर है जिसका व्यापक रूप से किसी संगठन के संपूर्ण बुनियादी ढांचे में विभिन्न अनुप्रयोगों और सेवाओं के सर्वर कॉन्फ़िगरेशन, प्रबंधन, परिनियोजन और ऑर्केस्ट्रेशन के लिए उपयोग किया जाता है।

कठपुतली विशेष रूप से लिनक्स और लिनक्स ऑपरेटिंग सिस्टम के कॉन्फ़िगरेशन को प्रबंधित करने के लिए डिज़ाइन की गई है। Windows सिस्टम। यह रूबी में लिखा गया है और इसकी अनूठी Dओमान Specific Lसिस्टम कॉन्फ़िगरेशन का वर्णन करने के लिए भाषा (DSL) का उपयोग करें।

कठपुतली संस्करण क्या हैं?

कठपुतली दो संस्करणों में आती है:

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

कठपुतली क्या कर सकती है?

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

सिस्टम एडमिन सर्वर पर मैन्युअल रूप से काम कर रहा है
सिस्टम एडमिन सर्वर पर मैन्युअल रूप से काम कर रहा है

ऐसा करने के लिए, आप पपेट का उपयोग कर सकते हैं, जो आपको एक सरल कोड लिखने की अनुमति देता है जिसे इन सर्वरों पर स्वचालित रूप से तैनात किया जा सकता है। इससे मानवीय प्रयास कम हो जाता है और विकास प्रक्रिया तेज़ और प्रभावी हो जाती है।

कठपुतली सर्वर प्रबंधन को स्वचालित करती है
पपेट सर्वर प्रबंधन को स्वचालित करता है

कठपुतली निम्नलिखित कार्य करती है:

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

कठपुतली डीएसएल और प्रोग्रामिंग प्रतिमान

इससे पहले कि हम पपेट डीएसएल सीखें, आइए प्रोग्रामिंग प्रतिमानों को समझें:

प्रोग्रामिंग प्रतिमान एक शैली है जिसका उपयोग आप कंप्यूटर प्रोग्रामिंग में करते हैं।

प्रतिमान चार प्रकार के होते हैं:

  • अनिवार्य।
  • घोषणात्मक.
  • कार्यात्मक (जिसे उस घोषणात्मक प्रतिमान का एक उपसमूह माना जाता है)
  • वस्तु के उन्मुख।

हम आज्ञाकारी और घोषणात्मक पर ध्यान केन्द्रित करेंगे।

अनिवार्य प्रतिमान

यह प्रोग्रामिंग प्रतिमान एक गणना के तर्क को व्यक्त करता है(क्या करें) और इसके नियंत्रण प्रवाह का वर्णन करता है(कैसे करें)

उदाहरण:

मान लीजिए कि आप अपने कार्यालय जा रहे हैं, आप एक टैक्सी बुक करते हैं और जब तक आप कार्यालय नहीं पहुंच जाते, तब तक ड्राइवर को चरण-दर-चरण निर्देश देना शुरू कर देते हैं। क्या करना है और कैसे करना है, यह निर्दिष्ट करना एक अनिवार्य शैली है।

घोषणात्मक प्रतिमान

यह प्रोग्रामिंग प्रतिमान किसी गणना के तर्क(क्या करें) को उसके नियंत्रण प्रवाह(कैसे करें) का वर्णन किए बिना व्यक्त करता है

उदाहरण:

मान लीजिए आप अपने कार्यालय जा रहे हैं, आप उबर कैब बुक करते हैं और अंतिम गंतव्य (कार्यालय) निर्दिष्ट करते हैं। क्या करना है यह निर्दिष्ट करना न कि कैसे करना है यह एक घोषणात्मक शैली है।

मिसाल क्या करना है कैसे करना है
अनिवार्य हाँ हाँ
कथात्मक हाँ नहीं

पपेट एक घोषणात्मक प्रोग्रामिंग प्रतिमान का उपयोग करता है

पपेट एक घोषणात्मक प्रोग्रामिंग दृष्टिकोण का उपयोग करता है।

उदाहरण: सिस्टम पर एक उपयोगकर्ता बनाएं:

यह शेल स्क्रिप्ट द्वारा इम्पेरेटिव प्रोग्रामिंग पैटर्न का उपयोग करके किया जा सकता है: यहां हम निर्दिष्ट करते हैं कि उपयोगकर्ता कैसे बनाया जाए और कौन से कमांड का उपयोग किया जाए ऑपरेटिंग सिस्टम.

घोषणात्मक प्रतिमान

हालाँकि, यह कार्य कठपुतली कोड की केवल कुछ पंक्तियों, कठपुतली डोमेन विशिष्ट भाषा (डीएसएल) के साथ घोषणात्मक प्रोग्रामिंग पैटर्न का उपयोग करके किया जा सकता है, और फिर भी समान परिणाम प्राप्त किया जा सकता है।

घोषणात्मक प्रतिमान

कॉन्फ़िगरेशन प्रबंधन उपकरणों के परिनियोजन मॉडल

इसके लिए दो परिनियोजन मॉडल हैं कॉन्फ़िगरेशन प्रबंधन उपकरण :

  • पुश-आधारित परिनियोजन मॉडल: मास्टर नोड द्वारा आरंभ किया गया।
  • पुल-आधारित परिनियोजन मॉडल: एजेंटों द्वारा आरंभ किया गया.

पुश-आधारित परिनियोजन मॉडल

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

पुल-आधारित परिनियोजन मॉडल.

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

कठपुतली कैसे काम करती है?

कठपुतली एक पुल परिनियोजन मॉडल पर आधारित है, जहां एजेंट नोड्स प्रत्येक के बाद नियमित रूप से जांच करते हैं 1800 मास्टर नोड के साथ सेकंड में यह देखने के लिए कि एजेंट में कुछ अपडेट करने की आवश्यकता है या नहीं। यदि कुछ भी अपडेट करने की आवश्यकता है तो एजेंट मास्टर से आवश्यक कठपुतली कोड खींचता है और आवश्यक क्रियाएँ करता है।

आइये इसे एक उदाहरण से समझाएं:

उदाहरण: मास्टर – एजेंट सेटअप:

मास्टर

एक लिनक्स आधारित मशीन जिस पर पपेट मास्टर सॉफ्टवेयर स्थापित है। यह पपेट कोड के रूप में कॉन्फ़िगरेशन को बनाए रखने के लिए जिम्मेदार है। मास्टर नोड केवल लिनक्स ही हो सकता है।

एजेंट

लक्ष्य मशीनों को कठपुतली द्वारा प्रबंधित किया जाता है, जिन पर कठपुतली एजेंट सॉफ्टवेयर स्थापित होता है।

एजेंट को किसी भी समर्थित ऑपरेटिंग सिस्टम जैसे कि लिनक्स या पर कॉन्फ़िगर किया जा सकता है Windows or Solaris या मैक ओएस.

मास्टर और एजेंट के बीच संचार सुरक्षित प्रमाणपत्रों के माध्यम से स्थापित किया जाता है।

कठपुतली मास्टर एजेंट संचार
कठपुतली मास्टर एजेंट संचार

मास्टर और एजेंट के बीच संचार

चरण 1) एक बार जब एजेंट और मास्टर के बीच कनेक्टिविटी स्थापित हो जाती है, तो पपेट एजेंट अपनी स्थिति के बारे में डेटा पपेट मास्टर सर्वर को भेजता है। इन्हें तथ्य कहा जाता है: इस जानकारी में होस्टनाम, कर्नेल विवरण, आईपी पता, फ़ाइल नाम विवरण आदि शामिल हैं।

मास्टर और एजेंट के बीच संचार
एजेंट ने मास्टर को तथ्य भेजे

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

मास्टर और एजेंट के बीच संचार
मास्टर एजेंट को एक कैटलॉग भेजता है

चरण 3) एजेंट नोड पर किसी भी आवश्यक कॉन्फ़िगरेशन परिवर्तन को लागू करने के लिए कॉन्फ़िगरेशन की इस सूची का उपयोग करता है।

यदि कॉन्फ़िगरेशन में कोई विचलन नहीं है, तो एजेंट कोई कॉन्फ़िगरेशन परिवर्तन नहीं करता है और नोड को उसी कॉन्फ़िगरेशन के साथ चलने देता है।

मास्टर और एजेंट के बीच संचार
एजेंट कॉन्फ़िगरेशन लागू करता है

चरण 4) एक बार ऐसा हो जाने पर नोड पपेट मास्टर को रिपोर्ट करता है कि कॉन्फ़िगरेशन लागू हो गया है और पूरा हो गया है।

कठपुतली ब्लॉक

पपेट, पपेट एपीआई का उपयोग करके रिपोर्ट को तीसरे पक्ष के उपकरणों के साथ एकीकृत करने की सुविधा प्रदान करता है।

कठपुतली निर्माण ब्लॉक चार प्रकार के होते हैं

  1. संसाधन
  2. क्लासेज
  3. प्रकट
  4. मॉड्यूल

कठपुतली संसाधन

कठपुतली संसाधन कठपुतली के निर्माण खंड हैं।

संसाधन हैं इनबिल्ट फ़ंक्शन जो कठपुतली में आवश्यक संचालन करने के लिए पीछे की ओर चलते हैं।

कठपुतली कक्षाएं

विभिन्न संसाधनों के संयोजन को एक एकल इकाई में समूहीकृत किया जा सकता है जिसे वर्ग कहा जाता है।

कठपुतली मैनिफेस्ट

मैनिफ़ेस्ट एक निर्देशिका है जिसमें कठपुतली DSL फ़ाइलें होती हैं। उन फ़ाइलों में .pp एक्सटेंशन होता है। .pp एक्सटेंशन का मतलब कठपुतली प्रोग्राम है। कठपुतली कोड में कठपुतली वर्गों की परिभाषाएँ या घोषणाएँ होती हैं।

कठपुतली मॉड्यूल

मॉड्यूल फ़ाइलों और निर्देशिकाओं का एक संग्रह है जैसे मैनिफ़ेस्ट, क्लास परिभाषाएँ। वे पपेट में पुनः उपयोग करने योग्य और साझा करने योग्य इकाइयाँ हैं।

उदाहरण के लिए, MySQL स्थापित करने और कॉन्फ़िगर करने के लिए मॉड्यूल MySQL या जेनकिंस आदि को प्रबंधित करने के लिए जेनकिंस मॉड्यूल.

कठपुतली मॉड्यूल
कठपुतली मॉड्यूल

कठपुतली संसाधनों के प्रकार

सामान्य तौर पर, एक सिस्टम में फ़ाइलें, उपयोगकर्ता, सेवाएँ, प्रक्रियाएँ, पैकेज आदि होते हैं। पपेट में, इन्हें संसाधन कहा जाता है। संसाधन किसी सिस्टम के मूलभूत निर्माण खंड हैं।

कठपुतली. कठपुतली एजेंटों पर सभी ऑपरेशन कठपुतली संसाधनों की मदद से किए जाते हैं।

कठपुतली संसाधन रेडीमेड उपकरण हैं जिनका उपयोग किसी भी समर्थित प्लेटफ़ॉर्म पर विभिन्न कार्यों और संचालनों को करने के लिए किया जाता है। हम किसी विशिष्ट कार्य को करने के लिए एकल कठपुतली संसाधन का उपयोग कर सकते हैं, या हम कुछ जटिल एप्लिकेशन कॉन्फ़िगरेशन परिनियोजन करने के लिए एक साथ कई कठपुतली संसाधनों का उपयोग कर सकते हैं।

संसाधन विभिन्न प्रकार के हो सकते हैं। संसाधन और संसाधन प्रकार किसी सिस्टम के कॉन्फ़िगरेशन का वर्णन करने के लिए.

संसाधन तीन प्रकार के होते हैं:

  1. कठपुतली कोर या अंतर्निहित संसाधन प्रकार.
  2. कठपुतली परिभाषित संसाधन प्रकार.
  3. कठपुतली कस्टम संसाधन प्रकार.

कठपुतली कोर या अंतर्निहित संसाधन प्रकार

कोर या बिल्ट-इन संसाधन प्रकार, पपेट सॉफ़्टवेयर के साथ भेजे जाने वाले प्री-बिल्ट पपेट संसाधन प्रकार हैं। सभी कोर या बिल्ट-इन पपेट संसाधन प्रकार पपेट टीम द्वारा लिखे और बनाए रखे जाते हैं।

कठपुतली परिभाषित संसाधन प्रकार

परिभाषित संसाधन प्रकार हल्के संसाधन प्रकार होते हैं, जो मौजूदा संसाधन प्रकारों के संयोजन का उपयोग करके पपेट घोषणात्मक भाषा में लिखे जाते हैं।

कठपुतली कस्टम संसाधन प्रकार

कस्टम संसाधन प्रकार रूबी में लिखे गए पूर्णतः अनुकूलित संसाधन प्रकार हैं।

आइए कठपुतली संसाधन प्रकारों के बारे में जानें...

टर्मिनल में, पपेट से संबंधित उपकमांड की सूची प्रदर्शित करने के लिए निम्नलिखित कमांड टाइप करें:

Puppet --help

कठपुतली कस्टम संसाधन प्रकार

हमारे मामले में, हम उपकमांड में रुचि रखते हैं “संसाधन” जिसका उपयोग हम इनबिल्ट कठपुतली संसाधन प्रकारों के बारे में जानकारी खोजने के लिए करेंगे।

टर्मिनल में, निम्न में से कोई भी कमांड टाइप करके, निम्न कमांड की सूची प्रदर्शित करें: कार्रवाई कठपुतली उपकमांड से संबद्ध “संसाधन"

Puppet help resource		
Puppet resource --help		

कठपुतली कस्टम संसाधन प्रकार

इस मामले में, हमारे पास है संसाधन उपकमांड के रूप में और –प्रकार कार्रवाई के रूप में.

कठपुतली में 49 अंतर्निहित कोर संसाधन प्रकार हैं।

टर्मिनल में, उपलब्ध इनबिल्ट पपेट संसाधन प्रकारों की सूची प्रदर्शित करने के लिए निम्नलिखित कमांड टाइप करें:

puppet resource –types

कठपुतली कस्टम संसाधन प्रकार

प्रत्येक प्रकार एक सूची का समर्थन करता है विशेषताओंये विशेषताएँ एक विस्तृत विवरण प्रदान करती हैं जिसका उपयोग पपेट संसाधन को प्रबंधित करने के लिए करता है।

कठपुतली संसाधन प्रकार से संबद्ध सभी विशेषताओं का पता लगाने के लिए, निम्नलिखित कमांड का उपयोग करें:

puppet describe <resource type name>	

पैरामीटर उस संसाधन प्रकार के लिए सभी उपलब्ध विशेषताओं को सूचीबद्ध करेगा.

कठपुतली वर्णन पैकेज

कठपुतली कस्टम संसाधन प्रकार

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

कठपुतली कक्षाएं क्या हैं?

कठपुतली वर्ग कठपुतली संसाधनों का संग्रह है जो एक एकल इकाई के रूप में एक साथ बंडल किए गए हैं।

पपेट ने संरचना को पुनः उपयोग योग्य और व्यवस्थित बनाने के लिए कक्षाएं शुरू कीं।

सबसे पहले, हमें क्लास परिभाषा सिंटैक्स का उपयोग करके एक क्लास को परिभाषित करना होगा; क्लास अद्वितीय होनी चाहिए और एक ही नाम से केवल एक बार ही घोषित की जा सकती है:

class <class-name> {
<Resource declarations>
}

उदाहरण:

class ntpconfig {
    file {
        "/etc/ntp.conf": 
     ensure=> "present", content=> "server 0.centos.pool.ntp.org iburst\n",
    }
}

अभी तक हमने सिर्फ़ क्लास को परिभाषित किया है, लेकिन हमने इसे कहीं भी इस्तेमाल नहीं किया है। मतलब यह कि हमने जो कोड लिखा है, वह तब तक कभी निष्पादित नहीं होगा जब तक कि हम इस क्लास को कहीं और घोषित न कर दें।

वर्ग घोषणा

कोड में परिभाषित क्लास का उपयोग करने के लिए, का उपयोग करें शामिल कीवर्ड।

class ntpconfig {
    file {
        "/etc/ntp.conf": 
      ensure=> "present", 
      content=> "server 0.centos.pool.ntp.org iburst\n",
    }
}
include ntpconfig

आइये इसे एक वास्तविक मामले से समझते हैं।

डेमो NTP स्थापित करें

सबसे पहले, सुनिश्चित करें कि NTP पैकेज सर्वर पर पहले से मौजूद नहीं है, यदि टेलनेट सर्वर पर मौजूद नहीं है तो निम्न कमांड कुछ भी नहीं लौटाएगा:

rpm -qa | grep -i ntp

डेमो NTP स्थापित करें

जैसा कि हम देख सकते हैं, NTP पैकेज पहले से ही सर्वर पर मौजूद है। आइए मौजूदा NTP पैकेज को हटा दें:

yum remove ntp

पैकेज हटाने के बाद, सुनिश्चित करें कि ntp.conf फ़ाइल मौजूद नहीं है:

ls -lrt /etc/ntp.conf

डेमो NTP स्थापित करें

निम्न आदेश चलाकर सत्यापित करें कि ntp सेवा मौजूद नहीं है:

systemctl status ntp

डेमो NTP स्थापित करें

कोड को सहेजने के लिए एक नई .pp फ़ाइल बनाएँ। कमांड लाइन से:

vi demontp.pp

कीबोर्ड से i दबाकर इन्सर्ट मोड में बदलें।

नई फ़ाइल बनाने के लिए निम्नलिखित कोड टाइप करें:

# Class Definition 
class ntpconfig {
    # Installing NTP Package 
  package {"ntp": 
    ensure=> "present",
    }
    # Configuring NTP configuration file 
  file {"/etc/ntp.conf": 
    ensure=> "present", 
    content=> "server 0.centos.pool.ntp.org iburst\n",
    }
    # Starting NTP services 
  service {"ntpd": 
    ensure=> "running",
    }
}

संपादन पूरा होने के बाद : esc दबाएँ

फ़ाइल को सहेजने के लिए, :wq! दबाएँ.

अगला कदम है चेक कोड में कोई सिंटैक्स त्रुटि है या नहीं। निम्न आदेश निष्पादित करें:

puppet parser validate demontp.pp

सुनिश्चित करें कि आपने स्विच कर लिया है जड़ बिना किसी त्रुटि के परीक्षण पूरा करने के लिए, निम्न आदेश निष्पादित करें:

su root

टेस्ट कोड निर्माण प्रक्रिया में अगला चरण है। स्मोक टेस्ट करने के लिए निम्न कमांड निष्पादित करें:

Puppet applies demontp.pp --noop

अंतिम चरण है रन कठपुतली को वास्तविक मोड में रखें और आउटपुट को सत्यापित करें।

puppet apply demontp.pp

कठपुतली ने कुछ भी प्रदर्शन नहीं किया क्योंकि डेमो क्लास बस थी परिभाषित लेकिन नहीं घोषित.

इसलिए, जब तक आप कठपुतली वर्ग घोषित नहीं करते, कोड लागू नहीं होगा।

चलो घोषित उसी कोड के अंदर डेमो क्लास का उपयोग करना कक्षा का नाम शामिल करें कोड के अंत में:

# Class Definition 
class ntpconfig {
    # Installing NTP Package 
  package {"ntp": 
    ensure=> "present",
    }
    # Configuring NTP configuration file 
  file {"/etc/ntp.conf": 
    ensure=> "present", 
    content=> "server 0.centos.pool.ntp.org iburst\n",
    }
    # Starting NTP services 
  service {"ntpd": 
    ensure=> "running",
    }
}

# Class Declaration 
include ntpconfig

फिर चेक कोड में कोई सिंटैक्स त्रुटि है या नहीं। निम्न आदेश निष्पादित करें:

puppet parser validate demontp.pp

सुनिश्चित करें कि आपने स्विच कर लिया है जड़ बिना किसी त्रुटि के परीक्षण पूरा करने के लिए, निम्न आदेश निष्पादित करें:

su root

परीक्षण कोड निर्माण प्रक्रिया में अगला चरण है। स्मोक टेस्ट करने के लिए निम्न कमांड निष्पादित करें:

Puppet apply demontp.pp --noop

अंतिम चरण है रन कठपुतली को वास्तविक मोड में रखें और आउटपुट को सत्यापित करें।

puppet apply demontp.pp

इस बार कोड लागू हो जाता है क्योंकि वर्ग को पहले परिभाषित किया गया और फिर घोषित किया गया।

डेमो NTP स्थापित करें

सुनिश्चित करें कि ntp.conf अब मौजूद है:

ls -lrt /etc/ntp.conf

निम्नलिखित कमांड चलाकर सत्यापित करें कि ntp सेवा प्रारंभ हो गई है:

systemctl status ntpd

डेमो NTP स्थापित करें