Ansible रोल्स- आपकी Playbooks को अनअटेंड करने का अंतिम तरीका



यह अन्सिबल रोल्स ब्लॉग इस बात पर चर्चा करता है कि किस तरह भूमिकाओं का उपयोग जटिल प्लेबुक को पढ़ने के लिए किया जाता है और एमईए स्टैक की स्थापना के प्रदर्शन के साथ पुन: प्रयोज्य होता है।

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

शामिल विषय:





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

Ans रोल्स का परिचय

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



इसे एक उदाहरण से समझाता हूं। मान लीजिए कि आप अपनी प्लेबुक को 5 अलग-अलग प्रणालियों पर 10 अलग-अलग कार्य करना चाहते हैं, तो क्या आप इसके लिए एकल प्लेबुक का उपयोग करेंगे? नहीं, एक एकल प्लेबुक का उपयोग करने से यह भ्रामक हो सकता है और ब्लंडर्स के लिए प्रवण हो सकता है। इसके बजाय, आप 10 अलग-अलग भूमिकाएँ बना सकते हैं, जहाँ प्रत्येक भूमिका एक कार्य करेगी। फिर, आपको बस इतना करना है कि उन्हें कॉल करने के लिए प्लेबुक के अंदर भूमिका का नाम उल्लेख करें। आप इस ब्लॉग में आगे की भूमिकाओं का उपयोग करना सीखेंगे।

Ansible Roles की पुन: प्रयोज्यता

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

चलो पिछले उदाहरण पर वापस जाते हैं। आपने 10 भूमिकाएँ लिखी हैं और अब आपको उनमें से 5 को दूसरे सेट के प्रावधान के लिए उपयोग करने की आवश्यकता है। क्या आप पूरी प्लेबुक फिर से लिखते हैं? नहीं, आप केवल उन 5 भूमिकाओं का पुन: उपयोग करते हैं, जिन्हें इस नई Playbook में कॉल करके। यदि आवश्यक हो तो आप संशोधन भी कर सकते हैं लेकिन यह अभी भी आपके समय की बहुत बचत करेगा।



मान लीजिए कि आपको LAMP स्टैक स्थापित करने के लिए एक प्लेबुक लिखने की आवश्यकता है। आपको 4 भूमिकाएँ बनानी होंगी, जिनमें से प्रत्येक के लिए लिनक्स, अपाचे, मोंगोडीबी और पीएचपी बनाना होगा। भविष्य में, यदि आप LAMP स्टैक के साथ-साथ वर्डप्रेस की स्थापना के लिए एक और प्लेबुक चाहते हैं, तो क्या आप फिर से LAMP स्टैक और वर्डप्रेस के लिए नई भूमिकाएँ बनाएंगे? नहीं न! आप बस पुरानी भूमिकाओं (LAMP स्टैक के लिए प्रयुक्त) का पुनः उपयोग कर सकते हैं और इसके अलावा वर्डप्रेस के लिए एक नई भूमिका भी बना सकते हैं।

भूमिका निर्देशिका संरचना

Ansible Roles का उपयोग करके, फ़ाइलों को एक निश्चित फ़ाइल संरचना में होने की अपेक्षा करें। भूमिकाओं का उपयोग करने का सबसे भ्रमित करने वाला हिस्सा फ़ाइल पदानुक्रम को समझ रहा है। Ansible एक सुविधा प्रदान करता है जिसे Ansible Galaxy कहा जाता है जो आपको भूमिकाओं के साथ खेलने में मदद करता है। हम पहले से ही जानते हैं कि हमारा Ansible Ubuntu (/ etc / ansible) पर कहां है। क्या आपने कभी / etc / ansible के तहत भूमिकाओं नामक एक निर्देशिका देखी है? यह निर्देशिका इस कारण से मौजूद है। आप इस निर्देशिका के अंदर विभिन्न भूमिकाएँ बनाते हैं।

निर्देशिका इस तरह दिखाई देगी:

पेड़ - Ansible Roles - एडुर्का

आप एक भूमिका का उपयोग कर बना सकते हैं ansible-galaxy init कमांड के अंदर / etc / ansible / रोल्स।

$सूदोansible-galaxy init

आप देखेंगे कि अन्य भूमिका निर्देशिकाएं भी बनाई गई होंगी।

ये निर्देशिका कार्य, हैंडलर, डिफॉल्ट्स, vars, फाइलें, टेम्प्लेट, और मेटा और एक README हैं।mdफ़ाइल।

कार्य करता है - उन कार्यों की मुख्य सूची शामिल करता है जिन्हें भूमिका द्वारा निष्पादित किया जाना है। यहहोता हैउस विशेष भूमिका के लिए main.yml फ़ाइल।

हैंडलर - इसमें हैंडलर शामिल हैं जो इस भूमिका या इस भूमिका के बाहर भी कहीं भी इस्तेमाल कर सकते हैं।

चूक - इस भूमिका द्वारा उपयोग किए जाने वाले डिफ़ॉल्ट चर शामिल हैं।

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

फाइलें - इस भूमिका के द्वारा फाइल की जा सकती है। इसमें ऐसी फाइलें होती हैं जिन्हें भूमिका को कॉन्फ़िगर करते समय मेजबानों को भेजना पड़ता है।

मेटा - इस भूमिका के लिए मेटाडेटा को परिभाषित करता है। असल में, इसमें ऐसी फाइलें शामिल हैं जो भूमिका निर्भरता स्थापित करती हैं।

हर एक कार्य निर्देशिका में एक शामिल होना चाहिए main.yml फ़ाइल जहां उस विशेष भूमिका के लिए वास्तविक कोड लिखा गया है।

आइए अब एमईएएन स्टैक को स्थापित करने के डेमो के साथ काम या भूमिका को समझें।

डेमो: अन्सिबल रोल्स का उपयोग करके MEAN स्टैक को स्थापित करना

मैं प्रदर्शन कर सकता हूँ कि कैसे एक एकल प्लेबुक को निष्पादित करके Ansible Roles का उपयोग करके MEAN स्टैक स्थापित किया जाए। हमारी तीन भूमिकाएँ होनी चाहिए: 1) पूर्वापेक्षाएँ स्थापित करना, 2) MongoDB स्थापित करना और 3) NodeJS स्थापित करना। मैं मान रहा हूं कि आप पहले से ही हैं स्थापित Ansible और Ubuntu पर एक सर्वर-क्लाइंट कनेक्शन बनाया है । आइए, हम आरिसिबल रोल्स के साथ खेलना शुरू करें।

स्टेप 1 - / etc / ansible / रोल्स निर्देशिका पर नेविगेट करें और पूर्वापेक्षाएँ, MongoDB और NodeJS के लिए भूमिकाएँ बनाएँ।

कैसे विंडोज़ पर php स्थापित करने के लिए
$ cd / etc / ansible / रोल्स $ sudo ansible-galaxy init पूर्वापेक्षाएँ $ sudo ansible-galaxy init मोंगोडब $ sudo ansible-galaxy init नोड्ज

अब आपको अपनी 'भूमिकाओं' की निर्देशिका में तीन भूमिकाएँ देखनी चाहिए।

चरण 2 - Git स्थापित करने वाले पूर्वापेक्षाओं के लिए main.yml लिखें।

$ cd पूर्वापेक्षाएँ / कार्य / main.yml --- - नाम: git apt स्थापित करें: नाम: git स्थिति: वर्तमान अद्यतन_ कैश: हाँ

चरण 3 - MongoDB भूमिका के लिए main.yml लिखें

$ cd /mongodb/tasks/main.yml --- - नाम: MongoDB - आयात सार्वजनिक कुंजी apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312427 - नाम: MongoDB - रिपोजिटरी apt_repository: फ़ाइल नाम जोड़ें '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu Trusty / mongodb-org / 3.2 मल्टीवर्स': इस स्थिति: present update_cache : हाँ - नाम: MongoDB - MongoDB स्थापित करें apt: नाम: mongodb-org राज्य: वर्तमान update_cache: हाँ - नाम: प्रारंभ mongod खोल: 'mongod &'

चरण 4 - के लिए main.yml लिखेंनोडजभूमिका

$ cd नोडज / कार्य / main.yml --- - नाम: Node.js - स्क्रिप्ट get_url: url: 'http://deb.nodesource.com/setup_6.x' गंतव्य: '{{var_ode}} / नोडज .sh '- नाम: Node.js - स्क्रिप्ट फ़ाइल में निष्पादन की अनुमति सेट करें: पथ:' {{var_node}} / nodejs.sh 'मोड:' u + x '- नाम: Node.js - संस्थापन संस्थापन शेल:' {{var_node}} / nodejs.sh '- नाम: Node.js - संस्थापन स्क्रिप्ट फ़ाइल निकालें: पथ:' {{var_node}} / नोडजेश 'स्थिति: अनुपस्थित - नाम: Node.js - Node.js उपयुक्त : नाम = {{आइटम}} राज्य = वर्तमान अद्यतन_ कैश = हां with_items: - बिल्ड-एसेंशियल - नोडज - नाम: Node.js - वैश्विक रूप से npm पर बावर और गुलाल स्थापित करें: नाम = {{आइटम}: राज्य = वर्तमान वैश्विक = हां with_items : - बोवर - गुलप

चरण 5 - अपनी मुख्य प्लेबुक लिखें

$ cd /etc/ansible/mean.yml --- - होस्ट: नोड्स Remote_user: ansible बन: Yes बन_method: sudo vars: #variable की जरूरत नोड स्थापना के दौरान var_node: / tmp भूमिकाएँ: - पूर्वापेक्षाएँ - mongodb - nodejs

अब जब हमने पूर्वापेक्षाएँ स्थापित करने के लिए भूमिकाओं को परिभाषित किया है, एमongoDB और NodeJs, उन्हें तैनात करें। निम्न कमांड का उपयोग करके प्लेबुक को निष्पादित करें।

$सूदोansible-playbook /etc/ansible/mean.yml -K

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

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

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