Ansible के साथ इन्फ्रास्ट्रक्चर ऑटोमेशन
इन्फ्रास्ट्रक्चर ऑटोमेशन आधुनिक DevOps चक्र का एक अनिवार्य हिस्सा बन गया है। सर्वरों की मैन्युअल कॉन्फ़िगरेशन, पैकेज इंस्टॉलेशन, ऐप डिप्लॉयमेंट और संसाधनों को स्केल करने में काफी समय लगता है। यह तरीका मानवीय त्रुटियों के लिए संवेदनशील है और प्रक्रियाओं की पुनरुत्पादन क्षमता को कम करता है। इन समस्याओं को हल करने के लिए Ansible का उपयोग किया जाता है — एक शक्तिशाली ऑटोमेशन टूल।
Ansible एक ओपन-सोर्स टूल है जो सिस्टम एडमिनिस्ट्रेशन कार्यों को ऑटोमेट करने के लिए बनाया गया है। यह Python भाषा में लिखा गया है और प्रबंधित होस्ट पर एजेंट इंस्टॉल करने की आवश्यकता नहीं होती। कॉन्फ़िगरेशन का वर्णन करने के लिए YAML फ़ॉर्मेट और सर्वरों से कनेक्ट करने के लिए SSH प्रोटोकॉल का उपयोग किया जाता है। सरल और पढ़ने में आसान सिंटैक्स संरचना के कारण, Ansible को NASA, Twitter और Red Hat जैसी बड़ी कंपनियों में व्यापक रूप से अपनाया गया है।
Ansible के साथ काम करने की मूल बातें
परिभाषा और कार्य सिद्धांत
Ansible कॉन्फ़िगरेशन ऑटोमेशन, सर्वर प्रबंधन, प्रक्रिया ऑर्केस्ट्रेशन और ऐप डिप्लॉयमेंट के लिए एक टूल के रूप में काम करता है। इसकी आर्किटेक्चर का आधार Python भाषा है, और कार्यों का वर्णन करने के लिए YAML का उपयोग डोमेन-विशिष्ट भाषा (DSL) के रूप में किया जाता है।
मुख्य लाभ
Ansible की एजेंट-रहित आर्किटेक्चर डिप्लॉयमेंट को सरल बनाती है और रखरखाव के ओवरहेड को कम करती है। रिमोट होस्ट से कनेक्ट करने के लिए SSH प्रोटोकॉल का उपयोग डेटा ट्रांसमिशन की सुरक्षा सुनिश्चित करता है। YAML सिंटैक्स कॉन्फ़िगरेशन फ़ाइलों को मानव-पठनीय और बनाए रखने में आसान बनाता है।
Python मॉड्यूल के माध्यम से विस्तारशीलता विशिष्ट कार्यों के लिए कस्टम समाधान बनाने की अनुमति देती है। Windows और Linux ऑपरेटिंग सिस्टम का समर्थन विषम वातावरण में सार्वभौमिक अनुप्रयोग सुनिश्चित करता है।
इंस्टॉलेशन प्रक्रिया
Ansible को pip पैकेज मैनेजर के माध्यम से इंस्टॉल किया जाता है:
pip install ansible
सिस्टम पैकेज मैनेजर के माध्यम से वैकल्पिक इंस्टॉलेशन विधि:
sudo apt install ansible
सिस्टम की आर्किटेक्चर और घटक
Ansible के मुख्य घटक
| घटक | उद्देश्य | विवरण |
|---|---|---|
| Inventory | प्रबंधित होस्ट की सूची | सर्वरों और उनके समूहीकरण के बारे में जानकारी रखता है |
| Playbook | YAML फ़ाइल में कार्यों का सेट | निष्पादित करने के लिए संचालन के अनुक्रम का वर्णन करता है |
| Module | अलग-अलग संचालन | विशिष्ट क्रियाएं करता है: कॉपी करना, पैकेज इंस्टॉल करना |
| Role | पुन: प्रयोज्य तार्किक संरचना | संबंधित कार्यों को तार्किक ब्लॉकों में जोड़ता है |
| Variable | चर और टेम्पलेट | कॉन्फ़िगरेशन का पैरामीटरीकरण सुनिश्चित करता है |
| Plugin | व्यवहार का विस्तार | callback और connection प्लगइन के माध्यम से कार्यक्षमता जोड़ता है |
इन्वेंटरी की संरचना
Inventory एक फ़ाइल है जो प्रबंधित होस्ट और उनके समूहीकरण का वर्णन करती है:
[web]
web1 ansible_host=192.168.1.10
web2 ansible_host=192.168.1.11
[database]
db1 ansible_host=192.168.1.20
db2 ansible_host=192.168.1.21
इन्वेंटरी में समूहों और अलग-अलग होस्ट के लिए चर हो सकते हैं। यह मुख्य playbook फ़ाइलों को बदले बिना विभिन्न सर्वरों के लिए Ansible के व्यवहार को कॉन्फ़िगर करने की अनुमति देता है।
Playbook का निर्माण और संरचना
Playbook के साथ काम करने की मूल बातें
Playbook YAML फ़ॉर्मेट में एक स्क्रिप्ट है जो कार्यों और उनके निष्पादन के क्रम का वर्णन करती है। प्रत्येक playbook में एक या अधिक plays होते हैं, जो विशिष्ट होस्ट समूहों के लिए क्रियाओं को परिभाषित करते हैं।
Playbook की मूल संरचना में निम्नलिखित तत्व शामिल हैं:
- name: इंस्टॉल