Ansible Tutorial - Ansible Playbooks लिखना सीखें



इस Ansible Tutorial ब्लॉग में आप सीखेंगे कि किस तरह से Ansible playbooks लिखना है, एडहॉक कमांड करें और अपने होस्ट मशीन पर Nginx को तैनात करने के लिए हाथों का प्रदर्शन करें।

उत्तर देने योग्य ट्यूटोरियल

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

आइए मैं आपको इस ible Ansible Tutorial ’का अवलोकन देता हूं:





अन्सिबल प्लेबुक ट्यूटोरियल | DevOps प्रशिक्षण | Edureka

Ansible ट्यूटोरियल - लेखन योग्य Playbooks

Ansible में Playbooks YAML प्रारूप में लिखी गई हैं। यह एक मानव-पठनीय डेटा क्रमांकन भाषा है। यह आमतौर पर कॉन्फ़िगरेशन फ़ाइलों के लिए उपयोग किया जाता है। इसका उपयोग कई अनुप्रयोगों में भी किया जा सकता है जहां डेटा संग्रहीत किया जा रहा है।



Ansible के लिए, लगभग हर YAML फ़ाइल एक सूची के साथ शुरू होती है। सूची में प्रत्येक आइटम कुंजी / मूल्य जोड़े की एक सूची है, जिसे आमतौर पर 'हैश' या 'शब्दकोश' कहा जाता है। इसलिए, हमें यह जानने की जरूरत है कि YAML में सूचियों और शब्दकोशों को कैसे लिखा जाए।

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

जैसे Edureka में विभागों की सूची के लिए:



विभागों: - विपणन - बिक्री - समाधान - सामग्री लेखन - समर्थन - उत्पाद

अब मैं आपको एक शब्दकोश का उदाहरण देता हूं:

-यूएस-कॉन्टिनेंट: नॉर्थ अमेरिका -कैंटल: वाशिंगटन डीसी -पॉपुलेशन: 319 मिलियन

होस्ट और उपयोगकर्ता:

एक प्लेबुक में प्रत्येक खेल के लिए, आपको यह चुनने के लिए कि आपके बुनियादी ढांचे में कौन सी मशीनें हैं और कौन से दूरस्थ उपयोगकर्ता को कार्यों को पूरा करना है। मेजबानों को Ansible इन्वेंट्री में शामिल करने के लिए, हम मेजबान मशीनों के आईपी पते का उपयोग करेंगे।

आम तौर पर मेजबान एक सूची एक या एक से अधिक समूहों या मेजबान पैटर्न होते हैं, जिन्हें कॉलोनों द्वारा अलग किया जाता है। दूरस्थ उपयोगकर्ता केवल उपयोगकर्ता खाते का नाम है।

चर:

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

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

लेकिन एक है नियम नामकरण चर के लिए। परिवर्तनीय नाम अक्षर, संख्या और अंडरस्कोर होना चाहिए। चर हमेशा एक पत्र के साथ शुरू होना चाहिए। जैसे wamp_21, port5 मान्य चर नाम है, जबकि 01_port, _server अमान्य हैं।

कार्य:

कार्य आपको छोटी फ़ाइलों में कॉन्फ़िगरेशन नीति के बिट्स को तोड़ने की अनुमति देते हैं। कार्य में अन्य फ़ाइलों से पुल भी शामिल है। Ansible में कार्य इसके बहुत अंग्रेजी अर्थ के साथ चलते हैं।

जैसे: इंस्टॉल, अपडेट आदि।

हैंडलर:

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

चलिए मैं आपको एक playbook का एक उदाहरण देता हूँ जो Apache httpd सर्वर प्रोग्राम शुरू करेगी:

----होस्ट करता है: वेब सर्वर किसका: http_port: .० ज्यादा ग्राहक: 200 रु Remote_user: जड़ कार्य: - नाम: सुनिश्चित करें कि अपाचे नवीनतम संस्करण में है यम: name = httpd राज्य = नवीनतम - नाम: अपाचे कॉन्फिग फाइल को लिखें टेम्पलेट: src = / srv / httpd.j2 dest = / etc / httpd.conf सूचित करें: - अपाचे को पुनरारंभ करें - नाम: सुनिश्चित करें कि अपाचे चल रहा है (और इसे बूट पर सक्षम करें) सर्विस: name = httpd राज्य = सक्षम होना प्रारंभ = हाँ हैंडलर: - नाम: अपाचे को पुनरारंभ करें सर्विस: name = httpd राज्य = पुनः आरंभ किया गया

मुझे उम्मीद है कि उदाहरण आपके द्वारा प्लेबुक घटकों के सभी विवरण से संबंधित होगा जो मैंने ऊपर उल्लेख किया है। यदि यह अभी भी आपके लिए स्पष्ट नहीं है, तो चिंता न करें कि आपके सभी संदेह इस ब्लॉग के बाद के भाग में स्पष्ट होंगे।

यह सब प्लेबुक के बारे में है। आपके द्वारा लिखी जाने वाली प्लेबुक। लेकिन Ansible आपको कई तरह के मॉड्यूल प्रदान करता है, जिनका आप उपयोग कर सकते हैं।

Ansible ट्यूटोरियल - मॉड्यूल

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

Ansible में विभिन्न प्रकार के मॉड्यूल हैं

  • अंतर्भाग मापदंड
  • अतिरिक्त मॉड्यूल

अंतर्भाग मापदंड

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

इन मॉड्यूल के स्रोत को Ansible- मॉड्यूल-कोर में GitHub पर Ansible द्वारा होस्ट किया गया है।

एक्स्ट्रा मॉड्यूल

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

लोकप्रिय 'एक्स्ट्रा' मॉड्यूल समय के साथ कोर मॉड्यूल को बढ़ावा दिया जा सकता है।

इन मॉड्यूल के लिए स्रोत को GibleHub पर Ansible- मॉड्यूल-एक्स्ट्रा में होस्ट किया गया है।

जैसे: रिमोट मैनेजमेंट मॉड्यूल्स में एक्स्ट्रा मॉड्यूल में से एक ipmi_power मॉड्यूल है, जो रिमोट मशीनों के लिए एक पावर मेंजर है। इसे चलाने के लिए अजगर 2.6 या बाद में और पैघमी की आवश्यकता होती है।

आप इस मॉड्यूल का उपयोग एडहॉक कमांड लिखकर कर सकते हैं जैसे कि मैंने नीचे लिखा है:

ipmi_power: name = 'test.domain.com' उपयोगकर्ता = 'लोकलहोस्ट' पासवर्ड = 'xyz' स्टेट = 'ऑन'

Ansible ट्यूटोरियल - वापसी मान

Ansible मॉड्यूल आम तौर पर एक डेटा संरचना को लौटाता है जिसे एक चर में पंजीकृत किया जा सकता है, या जब Ansible प्रोग्राम द्वारा आउटपुट किया जाता है तो सीधे देखा जा सकता है। प्रत्येक मॉड्यूल वैकल्पिक रूप से अपने स्वयं के अनूठे रिटर्न मानों का दस्तावेज कर सकता है।

वापसी मूल्यों के कुछ उदाहरण हैं:

  • परिवर्तित: जब भी कार्य में कोई परिवर्तन होता है, तो बूलियन मान के साथ लौटता है।
  • विफल: एक बूलियन मान लौटाता है, यदि कार्य विफल है
  • संदेश: यह उपयोगकर्ता के लिए रिले किए गए एक सामान्य संदेश के साथ एक स्ट्रिंग देता है।

Ansible ट्यूटोरियल - एडहॉक कमांड्स

एडहॉक कमांड कुछ कार्रवाई करने के लिए सरल एक लाइन कमांड हैं। Ansible कमांड के साथ रनिंग मॉड्यूल एडहॉक कमांड हैं।

जैसे:

कैसे जावा में पथ सेट करने के लिए - -
ansible host -m netscaler -a 'nsc_host = nsc.example.com उपयोगकर्ता = apiuser पासवर्ड = apipass' 

उपरोक्त एडहॉक कमांड सर्वर को निष्क्रिय करने के लिए नेट्स्केलर मॉड्यूल का उपयोग करता है। Ansible में सैकड़ों मॉड्यूल उपलब्ध हैं जहां से आप एडहॉक कमांड का उल्लेख कर सकते हैं और लिख सकते हैं।

ठीक है, सभी सैद्धांतिक स्पष्टीकरण के साथ पर्याप्त है, मैं आपको कुछ हाथों से अन्सिबल समझाता हूं।

अन्सिबल ट्यूटोरियल - हैंड्स ऑन

मैं अपने नोड / होस्ट मशीन पर Nginx को स्थापित करने के लिए एक प्लेबुक लिखने जा रहा हूं।

चलो शुरू करें :)

स्टेप 1: SSH का उपयोग करके अपने होस्ट से कनेक्ट करें। उसके लिए, आपको एक सार्वजनिक SSH कुंजी जनरेट करनी होगी।

नीचे दिए गए आदेश का उपयोग करें:

ssh-keygen

Ssh की - जेनरल ट्यूटोरियल - एडुर्का उत्पन्न करें

जैसा कि आप ऊपर स्नैपशॉट में देख सकते हैं, कमांड ssh-keygen एक सार्वजनिक SSH कुंजी उत्पन्न की।

चरण 2: आपका अगला कार्य अपने मेजबानों पर सार्वजनिक SSH कुंजी की प्रतिलिपि बनाना है। ऐसा करने के लिए, नीचे दिए गए आदेश का उपयोग करें:

ssh-copy-id -i root @

उपरोक्त स्नैपशॉट SSH कुंजी को होस्ट में कॉपी किया गया दिखाता है।

चरण 3: अपनी सूची में अपने मेजबानों / नोड्स के आईपी पते को सूचीबद्ध करें।

निम्न आदेश का उपयोग करें:

vi / etc / ansible / मेजबान

यह एक vi संपादक खोलेगा जहाँ आप अपने मेजबानों के आईपी पते को सूचीबद्ध कर सकते हैं। यह अब आपकी सूची है।

चरण 4: चलो यह सुनिश्चित करने के लिए कि एक कनेक्शन स्थापित किया गया है।

ऊपर स्नैपशॉट पुष्टि करता है कि कनेक्शन आपके नियंत्रण मशीन और होस्ट के बीच बनाया गया है।

चरण 5: आइए अब हम होस्ट मशीन पर नग्नेक्स स्थापित करने के लिए एक प्लेबुक लिखते हैं। आप vi संपादक में अपनी प्लेबुक लिख सकते हैं। उसके लिए, कमांड का उपयोग करके, अपनी प्लेबुक बनाएं।

vi

नीचे स्नैपशॉट YAML प्रारूप में लिखे गए Nginx को स्थापित करने के लिए मेरी प्लेबुक दिखाता है।

प्लेबुक के कार्यों को YAML में शब्दकोशों की एक सूची के रूप में परिभाषित किया गया है और ऊपर से नीचे तक निष्पादित किया गया है। यदि हमारे पास कई मेजबान हैं, तो प्रत्येक कार्य को अगले एक पर जाने से पहले प्रत्येक मेजबान के लिए करने की कोशिश की जाती है। प्रत्येक कार्य को एक शब्दकोश के रूप में परिभाषित किया गया है, जिसमें कई नाम हो सकते हैं, जैसे 'नाम' या 'सुडो' जो कार्य के नाम को दर्शाता है और चाहे इसके लिए सूडो विशेषाधिकारों की आवश्यकता हो।

एक परिवर्तनीय सर्वर पोर्ट वह सेट है जो टीसीपी पोर्ट पर सुनता है 8080 है आने वाले अनुरोधों के लिए।

यहां, पहला काम नग्नेक्स की स्थापना के लिए आवश्यक पैकेज प्राप्त करना है और फिर इसे स्थापित करना है।आंतरिक रूप से, Ansible यह जाँच करेगा कि क्या निर्देशिका मौजूद है और यदि वह नहीं है तो उसे बनाएगा, अन्यथा यह कुछ नहीं करेगा।

अगला कार्य Nginx को कॉन्फ़िगर करना है।Nginx में, संदर्भों में कॉन्फ़िगरेशन विवरण होते हैं।

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

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

अब, फ़ाइल को सहेजें और बाहर निकलें।

चरण 6: अब नीचे दिए गए कमांड का उपयोग करते हुए इस प्लेबुक को चलाएं:

ansible-playbook .yml

हम ऊपर दिए गए स्क्रीनशॉट में देख सकते हैं कि हमारा कार्य स्थापित किया जा रहा है।

चरण 7: यदि मेरे होस्ट मशीन पर Nginx स्थापित है, तो जांच लें। नीचे दिए गए आदेश का उपयोग करें:

ps waux | ग्रीप नगीनक्स

आप ऊपर दिए गए स्क्रीनशॉट में देख सकते हैं कि विभिन्न प्रक्रिया आईडी 3555 और 103316 चल रहे हैं, जो सुनिश्चित करता है कि नगनेक्स अपने मेजबान मशीनों पर चल रहा है।

बधाई हो! आपने सफलतापूर्वक अपने होस्ट पर Nginx को Ansible playbooks का उपयोग करके तैनात किया है। मुझे उम्मीद है कि आपको यह Ansible Tutorial ब्लॉग पढ़ने में मज़ा आया होगा। कृपया मुझे बताएं कि क्या आपके पास नीचे टिप्पणी अनुभाग में कोई प्रश्न हैं।

यदि आप यह पाया ' उत्तर देने योग्य ट्यूटोरियल ' से मिलता जुलता, इसकी जाँच पड़ताल करो 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। Edureka DevOps प्रमाणन प्रशिक्षण पाठ्यक्रम, SDLC में कई चरणों को स्वचालित करने के लिए शिक्षार्थियों को विभिन्न DevOps प्रक्रियाओं और टूल जैसे कठपुतली, जेनकींस, अन्सिबल, नागिओस और गिट में विशेषज्ञता प्राप्त करने में मदद करता है।