अन्सिबल प्रोविजनिंग: प्रोविजनिंग का स्मार्ट और एफर्टलेस तरीका



यह Ansible Provisioning ब्लॉग सबसे उपयोगी Ansible विशेषता में से एक को इंगित करता है। यह एक LAMP स्टैक की स्थापना और Ubuntu पर एक वेन्सिट की मेजबानी करने का प्रदर्शन करता है।

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

अधिकांश बड़े पैमाने पर परिनियोजन के लिए आपको एक से अधिक सिस्टम पर एक समान वातावरण सेटअप की आवश्यकता होती है।तो आप यह कैसे करते हैं? मैन्युअल रूप से सौ सिस्टम पर कमांड का एक ही सेट निष्पादित करें ?? नाह .. यह बहुत पुराना स्कूल है। यह कुछ ऐसी मशीनें हैं जो इंसानों से अच्छी हैं। क्या होगा अगर मैंने आपको बताया कि यह लंबी और उबाऊ प्रक्रिया केवल एक एकल खेल की किताब को निष्पादित करके हो सकती है?इस बारे में हम इस ब्लॉग में बात करने जा रहे हैं - Ansible Provisioning।





शामिल विषय हैं:

यदि आप DevOps में महारत हासिल करना चाहते हैं, ' पाठ्यक्रम आपके लिए विकल्प होना चाहिए।



Ansible क्या है?

DevOps एक ऐसी संस्कृति है जहाँ स्वचालन को वास्तव में उच्च प्राथमिकता दी जाती है। जब तैनाती और परीक्षण प्रक्रिया को स्वचालित करने के लिए उपकरण हो सकते हैं, तो कॉन्फ़िगरेशन प्रबंधन और प्रावधान के लिए उपकरण क्यों नहीं हैं। होशियार होने के लिए एक लाख तरीके हैं और Ansible का उपयोग करना उनमें से एक है। यह सबसे अधिक उपयोग किए जाने वाले उपकरणों में से एक है।

Ansible YAML आधारित प्लेबुक का उपयोग करता है जिसे एक शुरुआत से भी समझा जा सकता है। यह अपने ग्राहकों के साथ संवाद करने के लिए एक एजेंट रहित वास्तुकला का उपयोग करता है जिसमें ग्राहक की मशीन पर स्थापित होने वाला कोई तीसरा पक्ष उपकरण शामिल नहीं है, और इसके बजाय SSH- आधारित कनेक्शन का उपयोग करता है। एक स्वचालन उपकरण होने के कारण, आइए जानें कि यह क्या स्वचालित कर सकता है।

Ansible Automate क्या हो सकता है?

विकास चक्र में एक चरण का नाम दें और Ansible आपकी मदद करेगा, यह कॉन्फ़िगरेशन प्रबंधन, प्रावधान, ऑर्केस्ट्रेशन, निरंतर वितरण, सुरक्षा या यहां तक ​​कि आवेदन परिनियोजन भी हो सकता है। एक एकल एजेंट कम स्वचालन प्लेटफ़ॉर्म में विकास चक्र वर्कफ़्लो को एकजुट करता है।



  1. प्रावधान: जीने के लिए एप्लिकेशन / सॉफ़्टवेयर के लिए उपयुक्त वातावरण बनाना आवश्यक है। उत्तर देने योग्य अनुप्रयोग के अस्तित्व के लिए बनाए गए वातावरण को स्वचालित करने का एक तरीका प्रदान करता है।
  2. विन्यास प्रबंधन: कॉन्फ़िगरेशन कार्यों की एक विस्तृत विविधता का प्रदर्शन करें, जैसे कि सेवा शुरू / रोकना, सिस्टम, डिवाइस या एप्लिकेशन का कॉन्फ़िगरेशन बदलना आदि।
  3. आवेदन परिनियोजन: Ansible के साथ परिनियोजन की परिभाषा को स्वचालित करें और उपयोग करके परिनियोजन का प्रबंधन करें उत्तर देने योग्य टॉवर । यह उत्पादन से तैनाती कुशल और प्रबंधनीय बनाने के लिए पूरे आवेदन चक्र बनाता है।
  4. सतत वितरण: निरंतर एकीकरण / निरंतर वितरण पाइपलाइन का निर्माण और प्रबंधन बोझिल हो सकता है। यह वह जगह है जहाँ से उत्तर देने योग्य कदम में और डेवलपर के जीवन को आसान बनाता है।
  5. सुरक्षा और अनुपालन: परियोजनाओं के साथ काम करना, हमेशा सीमाएँ निर्धारित करता है और कंपनी की सुरक्षा नीतियों के साथ एकीकृत होता है। सुरक्षा नीतियों को तैनाती के साथ स्वचालित रूप से एकीकृत करने से नीतियों का अनुपालन आसान हो सकता है।
  6. आर्केस्ट्रा: एक पूरी परियोजना एक अलग कॉन्फ़िगरेशन वाले कई अलग-अलग उदाहरणों का एक संग्रह है। उत्तर देने योग्य विलय और एक पूरे के रूप में इन विभिन्न उदाहरणों का प्रबंधन करता है।

अन्डिबल प्रोविजनिंग की आवश्यकता

जैसा कि पहले उल्लेख किया गया है, पहला कदमअनुप्रयोगों के परिचालन जीवन चक्र को स्वचालित करनापर्यावरण तैयार हो रहा है, अर्थात्, प्रावधान। बड़ी तैनाती के लिए सटीक समान कॉन्फ़िगरेशन वाले कई होस्ट की आवश्यकता होती है। एक मेजबान का प्रावधान करने के बाद, क्या संभावनाएं हैं कि आपको अगले 10 मेजबान मिलेंगे, यदि ठीक से एक ही कॉन्फ़िगरेशन किया जाए? साथ ही आप एक ही दोहराव वाले कार्य को करने में कितना समय देंगे? यह वह जगह है जहाँ Ansible हमारी सेवा में आता है। आप एक ही प्लेबुक को निष्पादित करके सैकड़ों मेजबानों का प्रावधान कर सकते हैं। जादू? हा! नहीं, सिर्फ स्वचालन में विकास।

डेमो: एक लैम्प स्टैक बनाएं और एक वेबपेज को तैनात करें

मान लीजिए कि आप 30 प्रणालियों पर एक वेबसाइट को तैनात करने की कोशिश कर रहे हैं, हर वेबसाइट पर तैनाती के लिए एक आधार ओएस, वेब-सर्वर, डेटाबेस और पीएचपी की आवश्यकता होगी। हम इन प्री-रिक्वायर्स को एक साथ सभी 30 सिस्टम पर इंस्टॉल करने के लिए ansible playbook का उपयोग करते हैं।

इस Ansible प्रोविज़निंग डेमो में, मैं आपको दिखाने जा रहा हूँ कि Ansible का उपयोग करके वेबसाइट की मेजबानी के माहौल को कैसे व्यवस्थित किया जाए। हम LAMP (Linux, Apache, MySQL, और PHP) स्टैक स्थापित करते हैं और फिर एक वेबसाइट तैनात करते हैं।

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

मैंने एक फ़ोल्डर में सहेजा गया एक साधारण स्थिर वेबपेज बनाया है सूचकांक जिसमें दो फाइलें हैं, index.html, और style.css।

कैसे जावा में एक कार्यक्रम छोड़ने के लिए

index.html:

  HTML और CSS का उपयोग करने वाली वेबसाइट                अब अपनाये        

शैली

* {{ मार्जिन: 0 गद्दी: ० } हेडर { पृष्ठभूमि-चित्र: रैखिक-ढाल (rgba (0,0,0,0.5), rgba (0,0,0,0.5)), url ('puppie.jpg') ऊंचाई: 100vh पृष्ठभूमि के आकार: कवर पृष्ठभूमि-स्थिति: केंद्र } .nav- मेनू { सही नाव सूची-शैली: कोई नहीं मार्जिन-टॉप: 30 पीएक्स } .nav- मेनू ली। ' प्रदर्शन: इनलाइन-ब्लॉक } .nav- मेनू ली a { रंग: फ़िरोज़ा पाठ-सजावट: कोई नहीं पैडिंग: 5 पीएक्स 20 पीएक्स फ़ॉन्ट-परिवार: 'वरदाना', 'सेन्स-सेरिफ़' फ़ॉन्ट-आकार: 20 पीएक्स } .homebtn a { सीमा: 1px ठोस ग्रे पृष्ठभूमि-रंग: सफेद } .nav- मेनू ली a: होवर { सीमा: 1px ठोस ग्रे पृष्ठभूमि-रंग: सफेद } .tagline { स्थिति: निरपेक्ष चौड़ाई: 1200px मार्जिन-वाम: 0 मार्जिन-टॉप: 0 } एच १ { सफ़ेद रंग फ़ॉन्ट-आकार: 50px फ़ॉन्ट-परिवार: 'वरदाना', 'सेन्स-सेरिफ़' पाठ-संरेखण: केंद्र मार्जिन-टॉप: 275px } .adopt { मार्जिन-टॉप: 30 पीएक्स मार्जिन-वाम: 540px } .bttn { सीमा: 1px ठोस सफेद गद्दी: 10px 30px रंग: पीला फ़ॉन्ट-परिवार: 'वरदाना', 'सेन्स-सेरिफ़' फ़ॉन्ट-आकार: 22px पाठ-सजावट: कोई नहीं } .adopt a: होवर { पृष्ठभूमि-रंग: बॉलीवुड }

स्टेप 1: रिपॉजिटरी को अपडेट करने के लिए निम्नलिखित कमांड निष्पादित करें, आवश्यक रिपॉजिटरी जोड़ें और अपने इंस्टॉलेशन के लिए अपनी मशीन पर पीपीए कॉन्फ़िगर करें:

$ sudo apt-get update $ sudo apt-get install सॉफ्टवेयर-properties-common $ sudo apt-add-repository ppa: ansible / ansible

PPA जोड़ को स्वीकार करने के लिए एंटर दबाएं और फिर रिपॉजिटरी को अपडेट करने के बाद अंत में अन्सिबल इंस्टॉल करें।

$ sudo apt-get update $ sudo apt-get install ansible

चरण 2: अपने सर्वर के / etc / मेजबान फ़ाइल पर जाएं और होस्टनाम और होस्ट का आईपी पता जोड़ें।

आदि मेजबान - Ansible प्रोविजनिंग - Edurekaअंजीर। 1 - रिमोट होस्ट को / etc / होस्ट्स फ़ाइल में जोड़ें - Ansible Provisioning

चरण 3: जैसा कि आन्सीबल अपने मेजबानों के साथ संवाद करने के लिए SSH का उपयोग करने के एजेंट रहित आर्किटेक्चर पर काम करता है, ssh कीज़ को सेट अप करता है। असल में, हमारे पास एक सर्वर और एक होस्ट है। हम अपने सर्वर के साथ होस्ट को नियंत्रित करते हैं और इसलिए हम सर्वर पर एक सार्वजनिक ssh-key बनाते हैं और इसे होस्ट की मशीन में कॉपी करते हैं। सर्वर पर निम्न आदेश निष्पादित करें:

$ ssh-keygen

आपको फ़ाइल नाम दर्ज करने के लिए प्रेरित किया जाएगाजहां मैंआप अपनी कुंजी को सहेजना पसंद करते हैं और उत्पन्न कुंजी तक पहुँचने के लिए एक पासवर्ड बनाने के लिए भी संकेत देते हैं जो वैकल्पिक है। डिफ़ॉल्ट रूप से, सार्वजनिक कुंजी .ssh / id_rsa.pub फ़ाइल में सहेजी जाती है और निजी कुंजी .sh / id_rsa में सहेजी जाती है।

अंजीर। 2 - बनाएँ ssh कुंजी - उत्तर देने का प्रावधान

अब इस उत्पन्न कुंजी को आपके मेजबान में उपस्थित होने की आवश्यकता है। होस्ट में कुंजी को कॉपी करना दो तरीकों से किया जा सकता है, या तो मैन्युअल रूप से होस्ट में कॉपी करें या ssh-copy-id कमांड का उपयोग करें। इस मामले में, मैं ssh-copy-id रूट @ IP_of_host कमांड का उपयोग करके इसे कॉपी करने जा रहा हूं।

$ ssh-copy-id root@192.168.56.104

नोट- सुनिश्चित करें कि आप इस कमांड को निष्पादित करने से पहले अपने होस्ट में ssh कर सकते हैं।

चरण 4: कॉन्फ़िगर कॉन्फ़िगर मेजबान। / Etc / ansible / मेजबान फ़ाइल पर जाएं और hostname जोड़ें। यह आपके पास होस्ट और सर्वर की संख्या के अनुसार अलग-अलग होगा। आप से भी अधिक हो सकता हैएक सर्वरयहाँ।

अंजीर। 3 - इन्वेंटरी फ़ाइल में दूरस्थ होस्ट्स को जोड़ें - उत्तर देने योग्य प्रावधान

चरण 5: जांचें कि क्या आपके मेजबान तैयार हैं। इस कमांड को निष्पादित करें आपको एक समान आउटपुट मिलना चाहिए।

$ अन्सिबल-एम पिंग सब

अंजीर। 4 - रिमोट होस्ट की स्थिति की जाँच करें - उत्तर देने का प्रावधान

चरण 6: अब हमारा Ansible तैयार है, चलिए वेबसाइट को तैयार करने के लिए वातावरण तैयार करते हैं। हम Apache, MySql, और PHP को स्थापित करने के लिए एक एकल Ansible प्लेबुक का उपयोग करने जा रहे हैं। आइए इस पर एक नज़र डालें

नोट: यदि आप एक शुरुआत कर रहे हैं, पर एक नज़र है यह ब्लॉग जो बताता है कि कैसे एक प्लेबुक लिखना है।

# - सेटअप लैम्प स्टैक - होस्ट: host1 कार्य: - नाम: ppa रिपॉजिटरी बन:: - php7.0 - php7.0-mysql स्थिति: वर्तमान अद्यतन कैश: हाँ - नाम: प्रारंभ Apache सर्वर बन: हाँ सेवा: नाम: apache2 राज्य: शुरू सक्षम: हाँ - नाम: प्रारंभ mysql सेवा बन जाते हैं: हाँ सेवाएँ: नाम: mysql स्थिति: सक्षम होना शुरू: हाँ - नाम: लक्ष्य निर्देशिका फ़ाइल बनाएं: पथ = / var / www / html स्थिति = निर्देशिका मोड = 0755 - नाम: परिनियोजन index.html बन गया: हाँ प्रतिलिपि: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

यहां जैसा कि आप देख सकते हैं, हमारे पास 6 कार्य हैं, प्रत्येक कार्य एक विशिष्ट कार्य करता है।

  • पहला कार्य MySQL और PHP को स्थापित करने के लिए आवश्यक रिपॉजिटरी को जोड़ता है।
  • दूसरा कार्य apache2, MySQL-server, PHP और PHP-MySQL स्थापित करता है।
  • तीसरा और चौथा कार्य अपाचे और MySQL सेवा शुरू करता है।
  • पांचवां कार्य मेजबान मशीन में एक लक्ष्य निर्देशिका बनाता है और
  • अंत में, छठा कार्य index.html फ़ाइल को निष्पादित करता है, यह सर्वर मशीन से फ़ाइल उठाता है और इसे होस्ट मशीन में कॉपी करता है।

इस प्लेबुक को निम्न कमांड से निष्पादित करें:

$ asible-playbook lamp.yml -K

रेखाएं बन: हाँ प्लेबुक में बताया गया है कि इसे रूट के रूप में निष्पादित करने की आवश्यकता है और इसलिए जब आप कमांड निष्पादित करते हैं, तो यह sudo पासवर्ड के लिए संकेत देगा।

अंजीर। 5 - अतिरिक्त प्लेसीबुक निष्पादित करें - Ansible प्रावधान

जावा में स्कैनर क्या करता है

अब आप होस्ट मशीन में जा सकते हैं और जांच सकते हैं कि वेबसाइट होस्ट की गई है या नहीं।

अंजीर। 6 - स्थानीय होस्ट पर वेबसाइट की मेजबानी करें - विश्वसनीय प्रावधान

अब वह एक वेबपेज है जो सभी होस्ट्स में तैनात किया जाएगा जो सर्वर के साथ बातचीत करते हैं (हमारे मामले में, हमारे पास केवल एक होस्ट था) लेकिन 100 दूरस्थ होस्ट के लिए भी यही संभव होगा।

यह हमें Ansible Provisioning ब्लॉग के अंत में लाता है। यदि आप इस लेख को उपयोगी पाते हैं, तो देखें ' Edureka द्वारा पेश किया गया। इसमें उन सभी उपकरणों को शामिल किया गया है, जिन्होंने आईटी उद्योग को स्मार्ट बना दिया है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया इसे पोस्ट करें और हम तुम्हारे पास लौट आएंगे।