आजकल स्वचालन प्रचलन में है। प्रौद्योगिकी तेजी से विकसित होती है, और अधिक लोग मौजूदा उपलब्ध तृतीय पक्ष स्वचालन सॉफ़्टवेयर प्लेटफ़ॉर्म में योगदान दे रहे हैं। तेजी से तैनाती के मौसम के रूप में, स्वचालन अब आवश्यक है और इसे वास्तविक माना जाता है; आप आवश्यक समझी जाने वाली चीजों को स्वचालित करने से छुटकारा नहीं पा सकते हैं। चीजों को जल्दी से पूरा करने और अनावश्यक कार्यों को खत्म करने के लिए ये आवश्यकताएं महत्वपूर्ण हैं। एक बार यह मौजूद होने के बाद, संगठन और कंपनियां तार्किक व्यावसायिक चीजों पर ध्यान केंद्रित कर सकती हैं जो इसे विकास के लिए और अधिक रोचक बनाती हैं। इस ब्लॉग में डेटाबेस स्वचालन के लिए एक संक्षिप्त अवलोकन उपकरण और विचार बिंदु शामिल हैं, जिसके बाद डेटाबेस स्वचालन के लिए ClusterControl का उपयोग करने के तरीके पर एक विषय शामिल है।
डेटाबेस परिनियोजन स्वचालन के लिए तकनीक
इन्फ्रास्ट्रक्चर के लिए कोड (IaC) के रूप में परिष्कृत उपकरण जैसे कठपुतली, शेफ, Ansible, SaltStack, और Terraform आमतौर पर चुनने के लिए मुख्यधारा की प्रौद्योगिकियां हैं। ये उपकरण डीबीए को ऐसे कार्यों में मदद करते हैं जिन्हें आसानी से दोहराया जाता है, जैसे कि एक MySQL को तैनात करना। अपने MySQL परिनियोजन को स्वचालित करने से आपका बहुत समय बचता है, खासकर यदि आपके पास अपने QA, स्टेजिंग, या विकास परिवेशों के लिए परिनियोजित करने के लिए सॉफ़्टवेयर इंजीनियरिंग चक्र चरणों का समर्थन करने और उनका पालन करने के लिए व्यापक प्लेटफ़ॉर्म हैं।
स्वचालन का उपयोग करने से इन चीजों को जरूरत पड़ने पर जल्दी और आसानी से प्रबंधित किया जा सकता है।
अपना ऑटोमेशन सॉफ़्टवेयर चुनना
इस ब्लॉग में, आइए Ansible का उपयोग करने का प्रयास करें। जैसा कि पहले कहा गया है, तृतीय-पक्ष सॉफ़्टवेयर का उपयोग करना विशेष रूप से आपके MySQL क्लस्टर को परिनियोजित करने के लिए स्वचालन प्रदान करना आसान और तेज़ बनाता है। अब हम मौजूदा मॉड्यूल का उपयोग करेंगे विशेष रूप से Ansible भूमिकाएं जो उपलब्ध हैं। जैसा कि हमारे पिछले ब्लॉग में कहा गया है, हम Ansible Galaxy (उत्तरदायी संग्रह और भूमिकाओं के लिए भंडार) का उपयोग कर सकते हैं।
इससे पहले, आपको उस होस्ट की घोषणा करनी होगी जो परिनियोजन से प्रभावित होगा। उदाहरण के लिए, इस ब्लॉग में, मेरे पास निम्नलिखित हैं:
$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5
फिर मेरी /etc/ansible/hosts फ़ाइल में,
[email protected]:~# tail -n2 /etc/ansible/hosts
debnode4
debnode5
फिर, नीचे की तरह main.yml फ़ाइल बनाएं,
[email protected]:~/deploy-mysql# cat main.yml
---
# tasks file for deploy-mysql
- hosts: all
become: yes
vars_files:
- vars/main.yml
roles:
- role: geerlingguy.mysql
चूंकि मैं अपने स्वचालन के लिए Ansible का उपयोग करके इस सरल MySQL परिनियोजन के लिए Ubuntu 16.04 का उपयोग कर रहा हूं, इसलिए मेरे पास यह है,
[email protected]:~/deploy-mysql# cat vars/main.yml
---
# vars file for deploy-mysql
mysql_root_password: "[email protected]"
mysql_python_package_debian: python-mysqldb
अब, MySQL परिनियोजन के परीक्षण से पता चलता है,
[email protected]:~/deploy-mysql# ansible all -a "mysql -Nse 'select concat(\"hello world at \", @@hostname,\"\!\");' " 2>/dev/null
debnode4 | CHANGED | rc=0 >>
hello world at debnode4!
debnode5 | CHANGED | rc=0 >>
hello world at debnode5!
स्वचालित करें, फिर तैयार करें
जैसा कि हमने ऊपर दिखाया है, स्वचालित करना और मौजूदा का लाभ उठाना बेहतर है। इस ब्लॉग में, मैंने Ansible को चुना क्योंकि मौजूदा मॉड्यूल का लाभ उठाना आसान है जैसे कि इस उदाहरण में भूमिकाएँ और MySQL सर्वर को परिनियोजित करने के लिए बस कुछ ही कदम।
बेशक, यह इतना आसान नहीं है। मौजूदा भूमिकाएँ हैं, जैसे कि यह एक, जो प्रतिकृति और ट्यून करने के लिए अधिक चर का समर्थन करती है। मौजूदा मॉड्यूल जो कुछ भी कर सकते हैं, अपना खुद का पुन:आविष्कार करने के बजाय इसका लाभ उठाएं। आप केवल मौजूदा का उपयोग कर सकते हैं, फिर उन्हें अपनी आवश्यकताओं के अनुसार संशोधित कर सकते हैं।
स्वचालन के लिए क्लस्टर नियंत्रण
ClusterControl MySQL के परिनियोजन को दक्षतापूर्वक स्वचालित करता है। अपना खुद का बनाने के बजाय, ClusterControl स्वतंत्र रूप से डाउनलोड करने योग्य है, और आप इसका उपयोग अपने MySQL को आप कितनी बार चाहते हैं तैनात करने के लिए कर सकते हैं। आप लेखक-पाठक प्रतिकृति या लेखक-लेखक प्रतिकृति सेटअप सेट करने के लिए सॉफ़्टवेयर का उपयोग कर सकते हैं। नीचे स्क्रीनशॉट देखें:
आपको बस अपने वांछित MySQL का स्रोत होस्ट/आईपी पता निर्दिष्ट करना होगा सर्वर।
ClusterControl परिनियोजन स्वचालन यह निर्धारित करने के लिए पूर्व-जांच करता है कि सर्वर परिनियोजित किए जाने वाले कार्य को प्रबंधित करने के लिए तैयार है या नहीं। इसमें अभिगम्यता, भंडारण उपलब्धता और हार्डवेयर क्षमता शामिल है। काम चलाने के लिए तैयार होने के बाद चेक को चर के साथ जोड़ दिया जाता है। नीचे स्क्रीनशॉट देखें:
कार्य गतिविधि लॉग के आधार पर, आप देखेंगे कि यह हमारे द्वारा समर्थित Linux सिस्टम में चर या पैरामीटर। यदि आप नीचे दिए गए उदाहरण स्क्रीनशॉट को भी देखते हैं, तो यह मेमोरी और डिस्क की उपलब्धता की जांच करता है और MySQL परिनियोजन के लिए तैयार करता है। इस प्रकार, यह न केवल MySQL के सामान्य रूप से चलने के लिए बल्कि क्लस्टर कंट्रोल के लिए सर्वर और उसकी सेवाओं की निगरानी और पंजीकरण के लिए आवश्यक पैकेज स्थापित करता है जिसे हम निगरानी के लिए एकत्र करते हैं।
ClusterControl डेवलपर टूल
ClusterControl की विशेषता है कि आप विशेष रूप से सलाहकारों के लिए अपनी स्क्रिप्ट बना सकते हैं। आपके MySQL डेटाबेस परिनियोजन स्वचालन के लिए यह कितना महत्वपूर्ण है कि, एक बार डेटाबेस पंजीकृत और परिनियोजित होने के बाद, आप अपने स्वयं के सलाहकारों को और बढ़ा सकते हैं या बना सकते हैं। उदाहरण के लिए, SELinux और मेल्टडाउन/स्पेक्टर के लिए चेक बनाने के लिए ClusterControl सलाहकार का उपयोग करना शीर्षक वाला हमारा पिछला ब्लॉग चेकआउट करें:भाग एक। परिनियोजन के बाद, आप अपना पहला सलाहकार लिख सकते हैं और फिर कारनामों के लिए नियमित रूप से जाँच कर सकते हैं। इतना ही नहीं, आप कस्टम पैरामीटर भी देख सकते हैं जो आपकी आवश्यकताओं के लिए अद्वितीय हैं।
ClusterControl s9s CLI टूल
ClusterControl में CLI टूल हैं जिन्हें हम s9s CLI टूल कहते हैं, जो यहां हमारे जीथब रिपॉजिटरी में पाए जा सकते हैं। S9s CLI टूल आपको केवल एक कमांड के साथ MySQL को परिनियोजित करने में सक्षम बनाता है। उदाहरण के लिए,
$ s9s cluster --create \
--cluster-type=mysqlreplication \ --nodes="192.168.1.117?master;192.168.1.113?slave;192.168.1.115?slave;192.168.1.116?master;192.168.1.118?slave;192.168.1.119?slave;" \
--vendor=oracle \
--db-admin="root" \
--db-admin-passwd="root123" \
--cluster-name=ft_replication_23986 \
--provider-version=5.7 \
--log
उपरोक्त कमांड आपको एक MySQL प्रतिकृति क्लस्टर को तैनात करने की अनुमति देता है, इसके तर्कों के साथ निम्नलिखित आईपी पते प्रदान करता है, चाहे वह मास्टर हो या गुलाम।
यह उपकरण आपके पसंदीदा डेटाबेस के केवल स्वचालित परिनियोजन के अलावा अधिक शक्तिशाली और कुशल सुविधाएँ प्रदान करता है, जिसका हम समर्थन करते हैं, जैसे कि MySQL। S9s CLI टूल के बारे में अधिक जानने के लिए ClusterControl के लिए हमारे दस्तावेज़ देखें