हमारी "50 दिनों में 50 डेवऑप्स टूल्स" श्रृंखला के 30वें दिन में आपका स्वागत है! आज, हम DevOps टूलकिट में सबसे आवश्यक टूल में से एक, Ansible का पता लगाने जा रहे हैं। यह ब्लॉग आपको Ansible की बुनियादी बातों से परिचित कराएगा, इसके प्रमुख घटकों को तोड़ेगा और आपको सरल उदाहरणों के साथ शुरुआत करने का तरीका दिखाएगा। हम चीजों को सीधा रखेंगे, जिससे यह शुरुआती लोगों के लिए एक आदर्श शुरुआती बिंदु बन जाएगा।
Ansible एक ओपन-सोर्स ऑटोमेशन टूल है जो कॉन्फ़िगरेशन प्रबंधन, एप्लिकेशन परिनियोजन और ऑर्केस्ट्रेशन जैसे कार्यों को सरल बनाता है। इसे सरल लेकिन शक्तिशाली बनाने के लिए डिज़ाइन किया गया है, जिससे आप दोहराए जाने वाले कार्यों को स्वचालित कर सकते हैं और अपने बुनियादी ढांचे को अधिक कुशलता से प्रबंधित कर सकते हैं।
एजेंट रहित: Ansible को रिमोट सिस्टम पर किसी भी एजेंट को स्थापित करने की आवश्यकता नहीं है, जो ओवरहेड को कम करता है।
मानव-पठनीय YAML प्लेबुक: एन्सिबल प्लेबुक लिखने के लिए YAML (एक और मार्कअप लैंग्वेज) का उपयोग करता है, जिसे पढ़ना और लिखना आसान है।
इडेम्पोटेंट: आप अनपेक्षित परिवर्तनों की चिंता किए बिना एक ही प्लेबुक को कई बार चला सकते हैं।
एजेंटलेस आर्किटेक्चर: चूंकि Ansible एजेंटलेस है, इसलिए क्लाइंट सिस्टम पर कोई अतिरिक्त सॉफ़्टवेयर इंस्टॉल करने की आवश्यकता नहीं है, जिससे ओवरहेड और संभावित सुरक्षा जोखिम कम हो जाते हैं।
सरल सिंटैक्स: Ansible अपनी प्लेबुक के लिए YAML का उपयोग करता है, जिसे पढ़ना और लिखना आसान है, जो इसे स्वचालन में नए लोगों के लिए भी सुलभ बनाता है।
इम्पोटेंसी: एन्सिबल यह सुनिश्चित करता है कि वर्तमान स्थिति की परवाह किए बिना वांछित स्थिति प्राप्त की जाए। इसका मतलब यह है कि प्लेबुक को कई बार चलाने से कोई समस्या नहीं होगी या डुप्लिकेट कार्रवाई नहीं होगी।
व्यापक सामुदायिक समर्थन: एक बड़े और सक्रिय समुदाय के साथ, एन्सिबल के पास भूमिकाओं, मॉड्यूल और प्लेबुक का खजाना है, जिनका पुन: उपयोग किया जा सकता है और आपकी आवश्यकताओं के अनुरूप अनुकूलित किया जा सकता है।
स्केलेबिलिटी: चाहे कुछ सर्वरों का प्रबंधन करना हो या हजारों का, Ansible अच्छी तरह से स्केल करता है, जो इसे सभी आकार के संगठनों के लिए उपयुक्त बनाता है।
इन्वेंटरी: यह उन होस्ट (सर्वर) की एक सूची है जिन्हें Ansible प्रबंधित करता है। इन्वेंटरी स्थिर (फ़ाइल में परिभाषित) या गतिशील (स्क्रिप्ट द्वारा उत्पन्न) हो सकती है।
मॉड्यूल: मॉड्यूल Ansible के वर्कहॉर्स हैं। पैकेज स्थापित करने, फ़ाइलों की प्रतिलिपि बनाने, या सेवाओं को प्रबंधित करने जैसे कार्य करने के लिए उन्हें दूरस्थ होस्ट पर निष्पादित किया जाता है।
Playbooks: Playbooks Ansible की कॉन्फ़िगरेशन, परिनियोजन और ऑर्केस्ट्रेशन भाषा हैं। वे YAML में लिखे गए हैं और मेजबानों पर निष्पादित किए जाने वाले कार्यों की एक श्रृंखला का वर्णन करते हैं।
भूमिकाएं: भूमिकाएं आपको प्लेबुक को पुन: प्रयोज्य घटकों में विभाजित करने की अनुमति देती हैं, जिससे बड़ी परियोजनाओं को प्रबंधित और व्यवस्थित करना आसान हो जाता है।
वेरिएबल्स: वेरिएबल्स का उपयोग उन मानों को संग्रहीत करने के लिए किया जाता है जिन्हें संपूर्ण प्लेबुक में पुन: उपयोग किया जा सकता है। वे लचीलापन प्रदान करते हैं और आपको हार्डकोडिंग मानों के बिना प्लेबुक को अनुकूलित करने की अनुमति देते हैं।
हैंडलर: हैंडलर विशेष कार्य हैं जो केवल तभी चलते हैं जब अन्य कार्यों द्वारा ट्रिगर किया जाता है। इनका उपयोग अक्सर सेवाओं को पुनः आरंभ करने जैसी चीज़ों के लिए किया जाता है।
आइए अपने नियंत्रण नोड पर Ansible स्थापित करने से शुरुआत करें। इंस्टॉलेशन प्रक्रिया सीधी है और आपके ऑपरेटिंग सिस्टम के आधार पर थोड़ी भिन्न होती है।
उबंटू/डेबियन पर एन्सिबल इंस्टॉल करना
sudo apt update sudo apt install ansible -y
CentOS/RHEL पर Ansible इंस्टॉल करना
sudo yum install epel-release -y sudo yum install ansible -y
इंस्टॉलेशन का सत्यापन
इंस्टालेशन के बाद, आप यह सत्यापित कर सकते हैं कि Ansible सही ढंग से इंस्टाल है:
ansible --version
आइए एक दूरस्थ सर्वर पर Nginx स्थापित करने के लिए एक सरल प्लेबुक बनाएं। हम अपनी इन्वेंट्री को परिभाषित करके शुरुआत करेंगे।
चरण 1: एक इन्वेंटरी फ़ाइल बनाएं
होस्ट नाम की एक फ़ाइल बनाएं:
[webservers] 34.42.111.35 34.42.111.66
यह इन्वेंट्री फ़ाइल वेबसर्वर नामक एक समूह को परिभाषित करती है जिसमें दो सर्वर होते हैं।
चरण 2: प्लेबुक लिखें
इसके बाद, हम इन सर्वरों पर Nginx को स्थापित करने और शुरू करने के लिए एक प्लेबुक लिखेंगे।
nginx_setup.yml नामक एक फ़ाइल बनाएं:
--- - name: Install Nginx on web servers hosts: webservers become: yes tasks: - name: Install Nginx apt: name: nginx state: present - name: Start Nginx service service: name: nginx state: started enabled: true
नाम: प्लेबुक या कार्य क्या करता है इसका मानव-पठनीय विवरण।
होस्ट: होस्ट के समूह को निर्दिष्ट करता है (इन्वेंट्री से) जहां प्लेबुक चलनी चाहिए।
बनें: इंगित करता है कि Ansible को उन्नत विशेषाधिकारों (जैसे sudo) का उपयोग करना चाहिए।
कार्य: उन चरणों को सूचीबद्ध करता है जिन्हें Ansible निष्पादित करेगा। यहां, हम Nginx इंस्टॉल कर रहे हैं और यह सुनिश्चित कर रहे हैं कि सेवा बूट पर शुरू और सक्षम हो।
चरण 3: प्लेबुक चलाएँ
प्लेबुक को निष्पादित करने के लिए, निम्नलिखित कमांड चलाएँ:
ansible-playbook -i hosts nginx_setup.yml
यह कमांड Ansible को होस्ट्स इन्वेंट्री फ़ाइल में परिभाषित होस्ट्स पर nginx_setup.yml में कार्य चलाने के लिए कहता है।
ऐसे परिदृश्य पर विचार करें जहां आपको कई सर्वरों पर पैकेजों का एक सेट स्थापित करने की आवश्यकता है। इसे मैन्युअल रूप से करने में समय लगेगा और त्रुटियों की संभावना होगी। Ansible के साथ, आप इस कार्य को आसानी से स्वचालित कर सकते हैं।
यहां एकाधिक पैकेज स्थापित करने के लिए एक सरल प्लेबुक है:
--- - name: Install essential packages hosts: all become: yes tasks: - name: Install packages apt: name: - git - curl - htop state: present
इस प्लेबुक में, एन्सिबल इन्वेंट्री में सूचीबद्ध सभी सर्वरों पर गिट, कर्ल और एचटॉप स्थापित करता है। उपयुक्त मॉड्यूल यह सुनिश्चित करता है कि प्रत्येक पैकेज स्थापित है।
कल्पना करें कि आपको एकाधिक सर्वर पर एक नया उपयोगकर्ता बनाने और उन्हें विशिष्ट समूहों को सौंपने की आवश्यकता है। प्रत्येक सर्वर पर इस कार्य को मैन्युअल रूप से करना कठिन होगा। अन्सिबल के साथ, यह बहुत आसान है।
यहां बताया गया है कि आप यह कैसे कर सकते हैं:
--- - name: Create a new user hosts: all become: yes tasks: - name: Create user "devuser" user: name: devuser state: present groups: sudo
यह प्लेबुक सभी प्रबंधित सर्वर पर एक नया उपयोगकर्ता डिव्यूज़र बनाता है और उन्हें सूडो समूह में जोड़ता है।
संगति: Ansible सुनिश्चित करता है कि आपके सिस्टम लगातार कॉन्फ़िगर किए गए हैं, जिससे कॉन्फ़िगरेशन बहाव का जोखिम कम हो जाता है।
दक्षता: दोहराए जाने वाले कार्यों को स्वचालित करने से अधिक महत्वपूर्ण कार्यों के लिए समय बच जाता है।
स्केलेबिलिटी: चाहे मुट्ठी भर सर्वर प्रबंधित करें या हजारों, एन्सिबल स्केल आसानी से।
लचीलापन: एन्सिबल का मॉड्यूलर दृष्टिकोण आपको आवश्यकतानुसार इसकी कार्यक्षमता को अनुकूलित और विस्तारित करने की अनुमति देता है।
Ansible एक शक्तिशाली लेकिन उपयोग में आसान उपकरण है जो आपके बुनियादी ढांचे के प्रबंधन को नाटकीय रूप से सरल बना सकता है। कोड की केवल कुछ पंक्तियों के साथ, आप जटिल कार्यों को स्वचालित कर सकते हैं, जिससे आपके वातावरण में स्थिरता और विश्वसनीयता सुनिश्चित हो सकती है। चाहे आप सर्वर स्थापित कर रहे हों, एप्लिकेशन तैनात कर रहे हों, या कॉन्फ़िगरेशन प्रबंधित कर रहे हों, Ansible आपको इसे अधिक कुशलता से करने में मदद कर सकता है।
कल, हम अधिक उन्नत Ansible विषयों पर चर्चा करेंगे, उन सुविधाओं की खोज करेंगे जो आपके स्वचालन को अगले स्तर पर ले जा सकती हैं। बने रहें!
? नवीनतम अपडेट के लिए लिंक्डइन पर मुझे फ़ॉलो करना सुनिश्चित करें: शिवम अग्निहोत्री
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3