कार्यों को स्वचालित करने के लिए Ansible Playbook के बारे में जानें.
पहले, हमने Ansible परिचय, इंस्टॉलेशन गाइड और अगले, Playbook और इसके बिल्डिंग ब्लॉक्स के बारे में चर्चा की.
Contents
Ansible Playbook क्या है?
प्लेबुक आंसिबल ऑटोमेशन लैंग्वेज है। यह निर्देशों का एक सेट के साथ एक सरल फ़ाइल है। यह प्लेबुक में है जहां हम परिभाषित करते हैं कि हम क्या करना चाहते हैं। प्लेबुक में ऐसे नाटक होते हैं जो कार्य चलाते हैं, और ये कार्य मॉड्यूल चलाते हैं। उनके कार्य क्रमबद्ध तरीके से निष्पादित होते हैं.
उदाहरण के लिए, यह एक अनुक्रम में विभिन्न सर्वरों पर कमांड की एक श्रृंखला चलाने और क्रम में उन सर्वरों को फिर से शुरू करने जैसा सरल हो सकता है। या यह एक सार्वजनिक और निजी क्लाउड में सैकड़ों वीएम को तैनात करने और प्रोविजन करने के रूप में जटिल हो सकता है, जिसमें उनके लोड संतुलन, निगरानी, नेटवर्क टेलीफोन शामिल हैं.
प्लेबुक भाषा
Playbooks YAML कोड में लिखी गई सरल फाइलें हैं.
YAML एक डेटा क्रमांकन भाषा है। यह मानव और मशीन-पठनीय है। आपको YAML कोड लिखने के लिए किसी विशेष कोडिंग कौशल की आवश्यकता नहीं है। आप डेटा क्रमांकन भाषा को अपनी सभी डेटा संरचना को तोड़ने के लिए एक अनुवादक के रूप में सोच सकते हैं और उन्हें एक क्रम में क्रमबद्ध कर सकते हैं जिसे बाद में उपयोग के लिए फिर से बनाया जा सकता है। आप इस पुनर्संरचित डेटा संरचना का उपयोग एक ही वातावरण में या एक अलग वातावरण में भी कर सकते हैं.
नीचे mysql स्थापित करने के लिए एक नमूना YAML फ़ाइल है:
—
– नाम: MySQL स्थापित करें
मेजबान: geekflare-mysql- सेवा
कार्य:
– नाम: MySQL स्थापित करें
क्रिया: $ ansible_pkg_mgr pkg = mysql-server राज्य = स्थापित
– नाम: अजगर MySQL DB जोड़ें
क्रिया: $ ansible_pkg_mgr pkg = python-mysqldb राज्य = स्थापित
Ansible Playbook मूल बातें
लेख के इस भाग में अन्सिबल प्लेबुक के बारे में अधिक समझने के लिए मूल उत्तर देने योग्य अवधारणाओं को शामिल किया गया है.
होस्ट और उपयोगकर्ता
बुनियादी ढांचे में Ansible को लक्ष्य मशीनों की आवश्यकता होती है, जिन पर नाटकों को Ansible playbook से तैनात किया जाना चाहिए। होस्ट्स को IP पते के माध्यम से Ansible इन्वेंट्री में जोड़ा जाता है। मेजबान एक या अधिक समूहों या मेजबान पैटर्न की एक सूची है जो एक बृहदान्त्र द्वारा अलग किया जाता है। Remote_user में उपयोगकर्ता खाते का नाम होता है.
—
– यजमान: निर्माता
Remote_user: geekflare
चर
चर आपको प्लेबुक चलाने के तरीके को बदलने में सक्षम बनाते हैं। उन्हें प्लेबुक में लगभग हर जगह इस्तेमाल किया जा सकता है और एक इन्वेंट्री से विरासत में प्राप्त किया जा सकता है, स्पष्ट रूप से रनटाइम पर सेट किया गया है, जिसे प्लेबुक रन की शुरुआत में खोजा गया है। आप अक्षरों, संख्याओं और अंडरस्कोर का उपयोग करके एक चर नाम को परिभाषित कर सकते हैं, लेकिन यह केवल एक अक्षर से शुरू होना चाहिए.
उदाहरण के लिए, port_01 एक वैध चर है, जबकि 01_post एक अमान्य चर है। यहाँ एक अस्थिर प्लेबुक में चर का एक उदाहरण है:
वार्स:
http_port: 80
max_clients: 200
सूची
प्लेबुक चलाने के लिए, आपको उन लक्ष्यों की सूची चाहिए, जिन पर आप चाहते हैं कि स्वचालन हो। यह एक सूची है। इन्वेंटरी लिस्ट को कई अलग-अलग तरीकों से बनाया और संग्रहीत किया जा सकता है, जिसमें स्टैटिक फाइल्स, यानी, एन्सिबल होस्ट्स शामिल हैं। या इसे एक इन्वेंट्री स्क्रिप्ट के माध्यम से गतिशील रूप से उत्पन्न किया जा सकता है जो बाहरी स्रोत के लिए मेजबानों की सूची खींचेगा.
आप एक सूची सूची के भाग के रूप में एक चर भी निर्दिष्ट कर सकते हैं। इन्वेंटरी अंततः उन चीजों की एक सूची है जिन्हें आप स्वचालित करना चाहते हैं.
[वेबसर्वर]
192.168.20.1
192.168.20.2
192.168.20.4
[Dbservers]
172.17.1.56
172.17.1.57
कार्य
एक प्ले-बुक चलाने वाले कार्यों में खेलते हैं। कार्य चलाने योग्य मॉड्यूल चलाने के लिए जिम्मेदार है। एक समय में, केवल एक ही कार्य चल सकता है, और कार्य क्रमबद्ध रूप से निष्पादित हो जाते हैं। उनके कार्यों को YAML में लिखा गया है, जो भाषा की तरह बहुत अधिक अंग्रेजी है.
उदाहरणों के लिए: पैकेज_नाम, सॉफ़्टवेयर को अपडेट करें_नाम, आदि स्थापित करें। http:
कार्य:
– नाम: httpd पैकेज स्थापित करें
यम: नाम = httpd राज्य = नवीनतम
हैंडलर
हैंडलर एक विशेष प्रकार के कार्य हैं.
उन्हें एक कार्य द्वारा ट्रिगर किया जा सकता है और नाटक के अंत में एक बार चलाया जाता है। यदि कॉन्फ़िगरेशन फ़ाइल में कोई परिवर्तन है, तो उदाहरण भेजने के लिए इसका उपयोग किया जाता है, उदाहरण के लिए, अपाचे को स्थापित करने से पहले इसे शुरू करने के लिए सेवा को सूचित करें। हैंडलर को बुलाने के लिए “सूचित” सिंटैक्स का उपयोग किया जाता है। नीचे अपाचे को फिर से शुरू करने के लिए एक हैंडलर का उदाहरण दिया गया है:
—
– यजमान: सभी
कार्य:
– नाम: सुनिश्चित करें कि अपाचे नवीनतम संस्करण में है
यम: नाम = httpd राज्य = नवीनतम
सूचित करें:
– फिर से शुरू करें
– नाम: सुनिश्चित करें कि अपाचे चल रहा है (और इसे बूट पर सक्षम करें)
सेवा: नाम = httpd राज्य = सक्षम होना शुरू = हाँ
संचालकों:
– नाम: पुनरारंभ अपाचे
सेवा: नाम = httpd राज्य = पुनः आरंभ किया गया
अपनी पहली एंजेबल प्लेबुक बनाएं और चलाएं
मैं आपको बताता हूं कि कैसे एक प्लेबुक लिखना है। प्रत्येक प्लेबुक शीर्ष पर तीन डैश (-) के साथ शुरू होती है.
पहली चीज जिसका आपने एक ऐन्सिबल प्लेबुक में उल्लेख किया है, वह मेज़बान मशीन है, जिस पर आप प्लेबुक चलाना चाहते हैं.
फिर आप तथ्यों को इकट्ठा करके चर का उल्लेख कर सकते हैं; तब आप उन विभिन्न कार्यों का उल्लेख कर सकते हैं जिन्हें आप करना चाहते हैं। अब, याद रखें कि कार्य उसी क्रम में निष्पादित किया जाता है जब आप उन्हें लिखते हैं। उदाहरण के लिए, आप सॉफ़्टवेयर A को पहले और फिर सॉफ़्टवेयर B स्थापित करना चाहते हैं, सुनिश्चित करें कि प्लेबुक में लिखा गया पहला कार्य सॉफ़्टवेयर A को स्थापित करना होगा और अगला कार्य सॉफ़्टवेयर B को स्थापित कर सकता है.
फिर आपको सबसे नीचे हैंडलर मिले हैं। हैंडलर भी कार्य कर रहे हैं, लेकिन अंतर हैंडलर को निष्पादित करने के लिए है, जो हैंडलर को चलाने के लिए कार्यों की सूची में कुछ प्रकार के ट्रिगर्स की आवश्यकता होती है.
मुझे दिखाओ कि कैसे एक होस्ट पर nginx स्थापित करने और इसे शुरू करने के लिए एक अचूक प्लेबुक बनाने के लिए.
.Sl फ़ाइल बनाएँ, जहाँ आप अपने YAML कोड्स को ansible playbook बनाने के लिए डालेंगे.
gedit nginx.yml
इस फ़ाइल में नीचे YAML कोड डालें और फ़ाइल को सहेजें.
—
– मेजबान: ग्राहक
sudo: हाँ
वार्स:
– server_port: 8080
कार्य:
– नाम: nginx वेब सर्वर स्थापित करता है
apt: pkg = nginx state = इंस्टॉल किया गया update_cache = true
सूचित करें:
– nginx शुरू करें
संचालकों:
– नाम: शुरू nginx
सेवा: नाम = nginx राज्य = शुरू किया
उपरोक्त YAML फ़ाइल मेजबान के साथ शुरू होती है, मैं इस प्लेबुक को क्लाइंट मशीन (क्लाइंट) पर चलाना चाहता हूं। क्लाइंट IP पता पहले से / etc / ansible / होस्ट फ़ाइल में सहेजा गया है.
अगली पंक्ति सूडो विशेषाधिकारों के साथ कार्यों को चलाने की अनुमति देती है.
फिर मैंने इस playbook में एक चर के रूप में server_port को परिभाषित किया है.
इसके बाद Nginx वेब सर्वर को स्थापित करने के लिए इस ansible playbook में मेरा पहला काम आता है। इस कार्य में अधिसूचित पैरामीटर भी है, जिसका अर्थ है कि इस कार्य के बाद चलाने वाला हैंडलर.
अंत में, मैंने क्लाइंट मशीन पर nginx शुरू करने के लिए एक हैंडलर लिखा है.
अब जब आप समझदार प्लेबुक चलो प्लेबुक चलाने में YAML कोड के साथ स्पष्ट हैं। नीचे एक प्ले-बुक चलाने के लिए सिंटैक्स है:
ansible-playbook file_name.yml
अब, मैं ansible playbook चलाऊंगा, जिसे मैं nginx स्थापित करने और शुरू करने के लिए बनाता हूं.
[ईमेल संरक्षित]: / घर / geekflare # ansible-playbook nginx.yml
Play [क्लाइंट] ******************************* ********************
TASK [तथ्य जुटाना] ******************************* ************
ठीक है: [नोड १]
TASK [nginx वेब सर्वर स्थापित करता है] ******************************* ****
परिवर्तित: [नोड 1]
रनिंग हैंडलर [शुरू nginx] ********************************* ******
ठीक है: [नोड १]
PLAY RECAP ********************************* *********************
नोड 1: ठीक = 3 परिवर्तित = 1 पहुंच योग्य = 0 विफल = 0 छोड़ दिया = 0 बचाया = 0 पर ध्यान नहीं दिया = 0
यदि nginx सर्वर स्थापित किया गया था और सही ढंग से ansible प्लेबुक द्वारा शुरू किया गया था, यह जांचने के लिए नीचे कमांड चलाएँ.
[ईमेल संरक्षित]: / घर / geekflare # ps waux | ग्रीप नगीनक्स
रूट 3021 0.0 0.0 77676 1516? Ss 15:27 0:00 nginx: मास्टर प्रक्रिया / usr / sbin / nginx -g डेमन पर; master_process on;
निष्कर्ष
यह Ansible playbook के बारे में था। मुझे उम्मीद है कि इस लेख ने आपको यह जानने में मदद की कि आप कैसे बना सकते हैं और एक Ansible playbook चला सकते हैं। इसकी जांच करो कोर्स, यदि आप Roles, Jinja2, Lookups, Filter, Custom Modules सहित Ansible में उन्नत विषय सीखना चाहते हैं.
टैग:
Ansible