ansible tutorial installation
हैंड्स-ऑन Ansible आन्सेटिबल इंस्टॉलेशन के साथ इंस्टॉलेशन, उपयोग और कॉन्फ़िगरेशन:
हमने चर्चा की AWS इलास्टिक बीनस्टॉक हमारे पिछले ट्यूटोरियल में।
इस अस्थिर श्रृंखला में ट्यूटोरियल की सूची:
ट्यूटोरियल # 1: अस्थिर स्थापना और मॉड्यूल
ट्यूटोरियल # 2: Ansible Playbooks और वाल्ट्स
ट्यूटोरियल # 3: जेंकिंस के साथ अन्सिबल रोल्स और इंटीग्रेशन
Ansible एक खुला स्रोत उपकरण है जो कार्य स्वचालन, अनुप्रयोग परिनियोजन, क्लाउड प्रावधान और कॉन्फ़िगरेशन प्रबंधन में मदद करता है।
यह भी पढ़ें => DevOps प्रशिक्षण ट्यूटोरियल सूची
इसलिए हम आईटी ऑर्केस्ट्रेशन के बारे में बात कर रहे हैं जहां कई अलग-अलग मशीनों या सर्वरों में अनुक्रम में कार्य चलाए जाते हैं।
Ansible इसे SSH के माध्यम से कई मशीनों से जोड़कर करता है और उन कार्यों को चलाता है जिन्हें प्लेबुक में कॉन्फ़िगर किया गया है और एक सरल भाषा का उपयोग करता है जिसे कहा जाता है YAML (फिर भी एक और मार्कअप भाषा) ।
आप क्या सीखेंगे:
- अन्सिबल का अवलोकन
- अस्थिर स्थापना प्रक्रिया
- उपयोगी उपयोग
- उत्तर देने योग्य मॉड्यूल
- सारांश
- अनुशंसित पाठ
अन्सिबल का अवलोकन
सबसे महत्वपूर्ण बात यह है कि Ansible विभिन्न मशीनों पर कार्यों को स्वचालित करने के लिए एक एजेंट का उपयोग नहीं करता है।
Ansible सॉफ्टवेयर पैकेजों की सटीक जानकारी और अद्यतित तारीखों को बनाए रखना सुनिश्चित करता है।
उदाहरण के लिए , अगर आप 10 या 20 अलग-अलग मशीनों में JDK 8 या Tomcat या कोई अन्य सॉफ़्टवेयर पैकेज स्थापित करना चाहते हैं, तो यह वास्तव में सभी मशीनों पर जाने और उन्हें स्थापित करने के लिए उपयोग करने योग्य नहीं है, स्थापना के साथ ही प्लेबुक और इन्वेंटरी के लिए सॉफ़्टवेयर सॉफ़्टवेयर इंस्टॉलेशन को स्वचालित करने के लिए भी उपयोग करें। बहुत ही सरल भाषा में लिखा गया है।
तो उत्तर देने योग्य है:
- नि: शुल्क और मुक्त स्रोत
- रेडहट द्वारा बनाए रखा
- अनिवार्य रूप से एक सर्वर विन्यास
- विन्यास प्रबंधन
इस 3 भाग की अन्सिबल ट्यूटोरियल सीरीज़ में, हम निम्नलिखित विषयों पर हाथों-हाथ दृष्टिकोण पर चर्चा करेंगे:
- स्थापना और कॉन्फ़िगरेशन प्रक्रिया
- इन्वेंटरी
- उत्तर देने योग्य मॉड्यूल
- तदर्थ आदेश,
- प्लेबुक का उपयोग करके कार्य स्वचालन
- अस्थिर भूमिकाएँ
- अस्थिर तिजोरी
- Ansible और AWS
अस्थिर स्थापना प्रक्रिया
किसी भी मशीन से Ansible स्थापित और चलाया जा सकता है।
आमतौर पर आपको इसकी आवश्यकता होगी नियंत्रण मशीन स्थापना के लिए जो लिनक्स होना चाहिए। विंडोज मशीन एक नियंत्रण मशीन होने का समर्थन नहीं करती है। नियंत्रण मशीन अन्य दूरस्थ मशीनों का प्रबंधन करेगी। जैसा कि पहले उल्लेख किया गया है कि दूरस्थ मशीनों के प्रबंधन के लिए Ansible SSH का उपयोग करता है।
इस ट्यूटोरियल के दौरान, मैं उदाहरण दिखाने के लिए AWS EC2 उदाहरणों का उपयोग करूंगा। मैंने 2 उदाहरणों (एक नियंत्रण मशीन और अन्य कार्यों को स्वचालित करने के लिए एक लक्ष्य के रूप में) और Redhat Linux 7.5 का उपयोग किया है।
चाहे ऑन-प्रिमाइसेस हो या क्लाउड इंस्टेंसेस आपको स्वचालित रूप से स्वचालित होने वाले कार्यों के आधार पर पोर्ट खोलने की आवश्यकता होगी। मेरे पास ट्यूटोरियल में उल्लिखित उदाहरणों को प्रदर्शित करने के लिए EC2 उदाहरणों के लिए सुरक्षा समूह के एक भाग के रूप में निम्नलिखित पोर्ट खुले हैं।
क्रोम में .swf कैसे खोलें
उपरोक्त स्क्रीन में, मैंने उद्घाटन पोर्ट 8080 का उल्लेख किया है क्योंकि मैं टॉमकैट का उपयोग करके सॉफ्टवेयर तैनाती स्वचालन को स्वचालित करने के बारे में दिखाऊंगा जो कि एक DevOps दृष्टिकोण से उपयोगी होगा, विशेष रूप से निरंतर वितरण प्रक्रिया के दौरान।
YUM का उपयोग करके Ansible की स्थापना
जैसा कि पहले उल्लेख किया गया है कि मैं एक नियंत्रण मशीन और एक लक्ष्य मशीन का उपयोग करूंगा। स्थापना के साथ शुरू करने के लिए, दोनों मशीनों में नीचे दिखाए गए चरणों का पालन करें।
सेवा मेरे) दोनों मशीनों पर एक सामान्य आईडी बनाएं उदाहरण , ansible SUDO विशेषाधिकारों के साथ। इस आईडी का उपयोग कार्यों के स्वचालन के लिए शामिल सभी मशीनों में संचार के लिए किया जाएगा।
# useradd ansible # passwd ansible
बी) संपादित करें / etc / ssh / sshd_config पर फ़ाइल करें नियंत्रण मशीन और के लिए लाइनों बाहर असहजता पासवर्डअनुशासन और पर्मिटरूट लोजिन
दोनों मशीनों पर उपरोक्त चरणों का पालन करें। एक बार पूरा होने के बाद, पुनः आरंभ करें sshd दोनों मशीनों पर सेवा।
# systemctl restart sshd
सी) कार्यों के पूर्ण स्वचालन के लिए, हमें पासवर्ड रहित SSH प्रमाणीकरण की आवश्यकता होगी अन्यथा पूरी प्रक्रिया का उपयोग नहीं किया जाएगा यदि आपको हर बार पासवर्ड की कुंजी देनी है।
इसलिए ऊपर किए गए परिवर्तनों को पोस्ट करें अगर हम कमांड ssh और ssh चलाते हैं तो हमें हर बार पासवर्ड की कुंजी की आवश्यकता होगी जो कि Ansible कार्यों को निष्पादित करने के लिए सही प्रक्रिया नहीं है।
घ) नीचे दिखाए गए चरणों को करने के लिए पासवर्ड रहित प्रमाणीकरण सक्षम करें। सबसे पहले उपयोगकर्ता को जोड़ें ansible तक / आदि / सूडर्स दोनों मशीनों पर फ़ाइल जो उपयोगकर्ता को सक्षम करेगी ansible किसी भी कमांड को चलाने के लिए जिसे रूट विशेषाधिकारों की आवश्यकता होती है।
उपयोगकर्ता को जोड़ने के बाद फ़ाइल को सहेजें और बाहर निकलें।
है) आगे जाकर हम उपयोगकर्ता का उपयोग करेंगे ansible सभी चरणों को पूरा करने के लिए। तो उपयोगकर्ता के लिए स्विच ansible।
नियंत्रण मशीन सु - ansible और लक्ष्य मशीन सु - ansible
नियंत्रण मशीन ssh-keygen
लक्ष्य मशीन ssh-keygen
Ssh कुंजी को लक्ष्य मशीन पर कॉपी करें और इसके विपरीत।
नियंत्रण मशीन ssh-copy-id
लक्ष्य मशीन ssh-copy-id
Android फोन के लिए सबसे अच्छा संगीत डाउनलोडर
अब हम पासवर्ड डाले बिना लॉग इन कर सकते हैं। दोनों मशीनों पर ssh कनेक्टिविटी से चेक आउट होने के बाद और उपयोगकर्ता के रूप में लॉग इन किया जाना चाहिए।
नियंत्रण मशीन: ss ansible @
लक्ष्य मशीन: ss ansible @
च) दोनों मशीनों पर स्थापित नहीं होने पर wget स्थापित करें।
$ sudo yum install wget -y
जी) हम अब स्थापित कर सकते हैं ansible केवल नियंत्रण मशीन पर फेडोरा से EPEL रेपो को सक्षम करके जो ऐड-ऑन सॉफ़्टवेयर पैकेज प्रदान करता है। स्थापित करने के लिए निम्न चरणों का पालन करें ANSIBLE।
$ wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo rpm -ivh epel-release-latest-7.noarch.rpm $ sudo yum install ansible -y $ ansible --version
इस्तेमाल किया जाने वाला संस्करण संस्करण 2.5.3 है
ज) संपादित करें ansible.cfg फ़ाइल और नियंत्रण मशीन पर इन्वेंट्री फ़ाइल पैरामीटर को सक्षम करें।
$ sudo vi /etc/ansible/ansible.cfg
मैं) लक्ष्य मशीनों को प्रबंधित और ट्रैक करने के लिए अन्सिबल इन्वेंटरी की अवधारणा का उपयोग करता है। डिफ़ॉल्ट रूप से, यह फ़ाइल में स्थित है / etc / ansible / मेजबान और साथ ही बदला जा सकता है। एक होस्ट फ़ाइल में बेहतर वर्गीकरण और समूह के तहत कई मशीनों के समूह होते हैं। सभी आवश्यक मशीनों को उन समूहों में जोड़ा जा सकता है।
हर समूह को एक वर्ग ब्रैकेट और एक समूह नाम से दर्शाया जाता है। एक सर्वर वास्तव में कई समूहों में मौजूद हो सकता है।
इन्वेंट्री फ़ाइल को संपादित करें / etc / ansible / मेजबान और उन सभी सर्वरों को जोड़ें जिन्हें प्रबंधित करने की आवश्यकता है।
जे) वेबसर्वर के समूह के अंतर्गत सर्वरों की कनेक्टिविटी का परीक्षण करने के लिए ansible पिंग जैसा दिखाया गया है। यहाँ पिंग एक मॉड्यूल है जो एक विशेष फ़ंक्शन का परीक्षण करने के लिए करता है कि क्या मेजबानों को इन्वेंट्री फ़ाइल में परिभाषित किया जा सकता है या नहीं। हम अगले खंड में विभिन्न मॉड्यूल और इसके उदाहरणों के बारे में अधिक देखेंगे।
$ ansible webservers –m ping
इन्वेंट्री फ़ाइल में मेजबानों को सूचीबद्ध करने के लिए, आप नीचे कमांड चला सकते हैं
$ ansible webservers --list-hosts
उपयोगी उपयोग
3 मुख्य घटकों से मिलकर बनता है
- नियंत्रण मशीन
- इन्वेंटरी
- प्लेबुक
नियंत्रण मशीन Playbook के निष्पादन का प्रबंधन करती है। यह आपके लैपटॉप पर या इंटरनेट पर किसी भी मशीन पर स्थापित किया जा सकता है।
इन्वेंटरी फ़ाइल उन सभी लक्षित मशीनों की एक पूरी सूची प्रदान करती है, जिन पर विभिन्न मॉड्यूल ssh कनेक्शन करके और आवश्यक सॉफ़्टवेयर स्थापित करते हैं।
प्लेबुक में ऐसे चरण होते हैं, जो नियंत्रण तंत्र इन्वेंट्री फाइल में परिभाषित सर्वर पर करेगा।
यहां यह समझना बहुत महत्वपूर्ण है कि एंज़िबल एसएसएच प्रोटोकॉल के माध्यम से इन्वेंट्री में परिभाषित सभी सर्वरों के साथ बातचीत करता है जो रिमोट लॉगिन का एक सुरक्षित तरीका है। हर ऑपरेशन किया जाता है और फ़ाइल स्थानांतरण एन्क्रिप्ट किया जाता है।
तो जैसा कि आपने पिछले भाग में देखा होगा कि Ansible इंस्टॉलेशन के लिए किसी भी प्रकार के डेटाबेस का उपयोग नहीं करता है और इसे स्थापित करना बहुत आसान है, हम अब मॉड्यूल के साथ शुरू होने वाले Ansible के वास्तविक उपयोग के साथ आगे बढ़ेंगे जो कि मुख्य बिल्डिंग ब्लॉक है।
उत्तर देने योग्य मॉड्यूल
मॉड्यूल अंसिबल के मुख्य बिल्डिंग ब्लॉक हैं और मूल रूप से पुन: प्रयोज्य स्क्रिप्ट हैं जो कि अंसिबल प्लेबुक द्वारा उपयोग किए जाते हैं। Ansible कई पुन: प्रयोज्य मॉड्यूल के साथ आता है। इनमें सेवाओं को नियंत्रित करने के लिए कार्यक्षमता, सॉफ्टवेयर पैकेज स्थापना, फाइलों और निर्देशिकाओं के साथ काम करना आदि शामिल हैं।
सिंटैक्स इस प्रकार है, तदर्थ आदेशों को चलाने के दौरान जो एकल या सरल कार्यों को सिर्फ एक बार चलाने में मदद करते हैं और जिन्हें बाद में चलाने की आवश्यकता नहीं होती है। के लिये जैसे बस सभी सर्वरों पर टॉमकैट स्थापित करना।
ansible hostORgroup -m module_name -a 'arguments' -u username --become
आइए नजर डालते हैं कुछ सबसे लोकप्रिय एंसेबल मॉड्यूल और एड-हॉक कमांड के माध्यम से और बाद में प्लेबुक में उनके उपयोग पर।
# 1) सेटअप मॉड्यूल
नेटवर्क या हार्डवेयर या ओएस संस्करण या मेमोरी से संबंधित जानकारी के बारे में जानकारी प्राप्त करने के लिए सेटअप मॉड्यूल लक्ष्य मशीनों के बारे में समान इकट्ठा करने में मदद करेगा। नियंत्रण पर, मशीन नीचे कमांड चलाता है।
$ ansible webservers –m setup
# 2) कमांड मॉड्यूल
कमांड मॉड्यूल बस लक्ष्य मशीन पर एक विशिष्ट कमांड निष्पादित करता है और आउटपुट देता है।
कुछ उदाहरण नीचे दिए गए हैं
$ ansible webservers –m command - an ‘uptime’ $ ansible webservers –m command –a ‘hostname’
# 3) शैल मॉड्यूल
अपनी पसंद के शेल में किसी भी कमांड को निष्पादित करने के लिए आप शेल मॉड्यूल का उपयोग कर सकते हैं। शेल मॉड्यूल कमांड / बिन / श शेल में चलाए जाते हैं और आप ’> या pipe |’ (पाइप प्रतीक या यहां तक कि पर्यावरण चर) जैसे ऑपरेटरों का उपयोग कर सकते हैं।
तो मुख्य रूप से शेल और कमांड मॉड्यूल के बीच अंतर यह है कि अगर आपको वास्तव में उल्लिखित संचालकों की तरह उपयोग करने की आवश्यकता नहीं है, तो आप कमांड मॉड्यूल का उपयोग कर सकते हैं।
$ ansible webservers -m shell -a 'ls -l > temp.txt'
Webservers समूह के तहत मशीनों पर बनाई गई फ़ाइल की जाँच करें और पाठ फ़ाइल को देखने के लिए कमांड चलाएँ।
$ ansible webservers –m command -a ‘cat temp.txt’
# 4) उपयोगकर्ता मॉड्यूल
इस मॉड्यूल का उपयोग करके कोई भी उपयोगकर्ता बना या हटा सकता है।
उपयोगकर्ता जोड़ने के लिए
$ ansible webservers -m user -a 'name=user1 password=user1' --become
उपयोगकर्ता को हटाने के लिए
$ ansible webservers -m user -a 'name=user1 state=absent' --become
विकल्प:
- बनना - कमांड चलाने के लिए सुपरयुसर को विशेषाधिकार
- राज्य = अनुपस्थित उपयोगकर्ता को हटाने के लिए
# 5) फ़ाइल मॉड्यूल
इस मॉड्यूल का उपयोग फाइल, डायरेक्टरी, सेट, या फाइल परमिशन और ओनरशिप आदि बदलने के लिए किया जाता है
उदाहरण 1: एक फ़ाइल बनाएँ
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=touch mode=600 owner=ansible group=ansible'
उदाहरण 2: एक निर्देशिका बनाएँ
फ़ाइल मॉड्यूल का उपयोग करके एक निर्देशिका बनाने के लिए, आपको दो पैरामीटर सेट करने की आवश्यकता है।
- पथ (उपनाम - नाम, भाग्य) - यह बनाई जाने वाली निर्देशिका का पूर्ण पथ है।
- स्थिति - आपको मान। निर्देशिका के रूप में दर्ज करना चाहिए। ’डिफ़ॉल्ट रूप से, मान। फ़ाइल’ है।
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=directory mode=755'
उदाहरण 3: एक फ़ाइल हटाएँ
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=absent'
उदाहरण 4: एक निर्देशिका हटाएं
आप राज्य पैरामीटर मान सेट करके एक निर्देशिका हटा सकते हैं अनुपस्थित । निर्देशिका और इसकी सभी सामग्री हटा दी जाएगी।
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=absent'
निष्पादन योग्य जार फ़ाइल कैसे खोलें
# 6) मॉड्यूल कॉपी करें
इसका उपयोग फ़ाइलों को कई लक्ष्य मशीनों में कॉपी करने के लिए किया जाता है।
$ ansible webservers -m copy -a 'src=sample.txt dest=/home/ansible/sample.txt'
# 7) सॉफ्टवेयर पैकेज का प्रबंधन
यदि आपको through yum ’या’ apt ’के माध्यम से सॉफ़्टवेयर पैकेज स्थापित करने की आवश्यकता है, तो आप नीचे दिए गए आदेशों का उपयोग कर सकते हैं।
उदाहरण 1: जीआईटी स्थापित करें
$ ansible webservers –m yum -a “name=git state=present” --become
दाहिने हाथ की खिड़की पर, आप देख सकते हैं कि गिट स्थापित नहीं है, यह कमांड नहीं देगा पाया गया है और एक बार स्थापित होने पर यह आउटपुट दिखाएगा।
इस आदेश में, राज्य = वर्तमान जाँच करेगा कि पैकेज स्थापित है या नहीं और स्थापित नहीं है या नहीं यह नवीनतम संस्करण स्थापित करेगा।
उदाहरण 2: जांचें कि क्या पैकेज स्थापित है और इसे नवीनतम संस्करण में अपडेट करें।
$ ansible webservers -m yum -a “name=git state=latest”
उपरोक्त आदेश में, अवस्था = नवीनतम केवल नवीनतम संस्करण के लिए पैकेज को अद्यतन करेगा।
उदाहरण 3: अपाचे वेबसर्वर स्थापित करें
$ ansible webservers -m yum -a 'name=httpd state=present' –become
उदाहरण 4: जाँच करें कि मावेन स्थापित है या नहीं।
$ ansible webservers -m yum -a 'name=maven state=absent' –become
# 8) प्रबंधन सेवाएं मॉड्यूल
Ansible के साथ सेवाओं का प्रबंधन करने के लिए, हम एक मॉड्यूल का उपयोग करते हैं 'सर्विस'।
एक सेवा शुरू करना
$ ansible webservers -m service -a “name=httpd state=started” --become
किसी सेवा को रोकना
$ ansible webservers -m service -a “name=httpd state=stopped” --become
किसी सेवा को पुनरारंभ करना
$ ansible webservers -m service -a “name=httpd state=restarted --become
क्लिक यहां पूर्ण मॉड्यूल सूची प्राप्त करने के लिए।
सारांश
इस ट्यूटोरियल में, मैंने आपको Ansible की मूल अवधारणाओं और घटकों से परिचित कराया और हमने Ansible निष्पादन में मुख्य घटक जो Ansible के निष्पादन की मदद से स्थापना, कॉन्फ़िगरेशन, और Ansible के उपयोग के बारे में अधिक देखा है।
हमारे आगामी ट्यूटोरियल में, हम एन्क्रिप्टेड फ़ाइलों में संवेदनशील डेटा रखने के लिए कार्य स्वचालन और Ansible वाल्ट के लिए प्लेबुक लिखने के बहुत महत्वपूर्ण पहलू पर ध्यान केंद्रित करेंगे।
PREV ट्यूटोरियल | अगले ट्यूटोरियल
अनुशंसित पाठ
- शुरुआती के लिए गहराई से ग्रहण ट्यूटोरियल
- Ansible Roles, DevOps में जेनकींस के साथ एकीकरण, और EC2 मॉड्यूल
- टास्क ऑटोमेशन का उपयोग उदाहरणों के साथ एंज़िबल प्लेबुक और अन्सिबल वाल्ट का उपयोग करना
- स्टेप-बाय-स्टेप इंस्टालेशन और अप्पियम स्टूडियो का सेटअप
- जावा प्रोग्रामिंग भाषा का परिचय - वीडियो ट्यूटोरियल
- वेबड्राइवर संपूर्ण सेटअप और स्थापना ग्रहण के साथ - सेलेनियम ट्यूटोरियल # 9
- जीरा डाउनलोड और स्थापना जीरा लाइसेंस सेटअप के साथ
- पायथन परिचय और स्थापना प्रक्रिया