नए संसाधनों को जोड़ने या परिवर्तन करते समय कई सर्वरों के लिए डेटाबेस परिनियोजन अधिक जटिल और समय लेने वाला हो जाता है। इसके अलावा, जब भी सिस्टम को मैन्युअल रूप से कॉन्फ़िगर किया जाता है, तो मानवीय त्रुटियों की संभावना होती है जो भयावह परिणाम दे सकती हैं।
एक डेटाबेस परिनियोजन स्वचालन उपकरण हमें विकास से लेकर उत्पादन वातावरण तक कई सर्वरों पर एक डेटाबेस को तैनात करने में सक्षम करेगा। स्वचालित परिनियोजन के परिणाम आपके नोड्स की वर्तमान स्थिति की जानकारी प्रदान करने के अलावा विश्वसनीय, अधिक कुशल और पूर्वानुमेय होते हैं जिनका उपयोग उन संसाधनों की योजना बनाने के लिए किया जा सकता है जिन्हें आपको अपने सर्वर में जोड़ने की आवश्यकता होगी। एक अच्छी तरह से प्रबंधित परिनियोजन के साथ, विकास और परिचालन टीमों दोनों की उत्पादकता में सुधार होता है जिससे व्यवसाय को तेजी से विकसित करने, अधिक पूरा करने और आसान लगातार तैनाती के कारण, समग्र सॉफ्टवेयर सेटअप अंततः बेहतर होगा और अंतिम उपयोगकर्ताओं के लिए मज़बूती से कार्य करेगा।
MongoDB को मैन्युअल रूप से तैनात किया जा सकता है लेकिन कार्य अधिक से अधिक बोझिल हो जाता है जब आपको विभिन्न सर्वरों पर होस्ट किए जा रहे कई सदस्यों के समूह को कॉन्फ़िगर करना पड़ता है। इसलिए हमें एक ऑटोमोटिव टूल का उपयोग करने का संकल्प लेना चाहिए जो हमें तनाव से बचा सके। कुछ उपलब्ध टूल जिनका उपयोग किया जा सकता है उनमें कठपुतली, बावर्ची, Ansible, और SaltStack शामिल हैं।
इनमें से किसी भी उपकरण के साथ अपने MongoDB को परिनियोजित करने के मुख्य लाभ हैं:
- समय की बचत। कल्पना कीजिए कि आपके डेटाबेस के लिए 50 नोड हैं और आपको प्रत्येक के लिए MongoDB संस्करण को अपडेट करने की आवश्यकता है। इस प्रक्रिया से गुजरने में आपको उम्र लगेगी। हालाँकि, एक स्वचालित उपकरण के साथ, आपको बस कुछ निर्देश लिखने होंगे और आपके लिए शेष अद्यतन करने के लिए एक आदेश जारी करना होगा। तब डेवलपर्स के पास मैन्युअल परिनियोजन को ठीक करने के बजाय नई सुविधाओं पर काम करने का समय होगा।
- त्रुटियों को कम किया जिससे ग्राहकों की संतुष्टि हुई। नए अपडेट करने से डेटाबेस सिस्टम में त्रुटियां हो सकती हैं, खासकर अगर कॉन्फ़िगरेशन मैन्युअल रूप से किया जाना है। साल्टस्टैक जैसे टूल के साथ, मैन्युअल चरणों को हटाने से मानवीय त्रुटि कम हो जाती है और नई सुविधाओं के साथ बार-बार अपडेट होने से ग्राहकों की ज़रूरतें पूरी होंगी, इसलिए संगठन प्रतिस्पर्धी बना रहेगा।
- कॉन्फ़िगरेशन की लागत कम करें. एक परिनियोजन उपकरण के साथ, कोई भी स्वयं को भी तैनात कर सकता है क्योंकि प्रक्रिया स्वयं बहुत आसान हो जाएगी। यह विशेषज्ञों को काम करने की आवश्यकता को समाप्त कर देगा और त्रुटियों को कम करेगा
साल्टस्टैक क्या है
SaltStack एक ओपन-सोर्स रिमोट एक्ज़ीक्यूशन टूल और पायथन में विकसित एक कॉन्फ़िगरेशन प्रबंधन प्रणाली है।
दूरस्थ निष्पादन सुविधाओं का उपयोग लचीली लक्ष्यीकरण प्रणाली के समानांतर विभिन्न मशीनों पर कमांड चलाने के लिए किया जाता है। यदि उदाहरण के लिए आपके पास 3 सर्वर मशीनें हैं और आप प्रत्येक के लिए MongoDB स्थापित करना चाहते हैं, तो आप इन मशीनों पर एक साथ मास्टर नोड से इंस्टॉलेशन कमांड चला सकते हैं।
कॉन्फ़िगरेशन प्रबंधन के संदर्भ में, एक क्लाइंट-सर्वर इंटरफ़ेस स्थापित किया गया है ताकि बुनियादी ढांचे के घटकों को वांछित स्थिति में आसानी से और सुरक्षित रूप से रूपांतरित किया जा सके।
साल्टस्टैक आर्किटेक्चर
साल्टस्टैक के लिए मूल सेटअप मॉडल क्लाइंट-सर्वर है जहां सर्वर को मास्टर और क्लाइंट को दास के रूप में संदर्भित किया जा सकता है। मास्टर नियंत्रण प्रणाली के रूप में कमांड या बल्कि निर्देश जारी करता है जिसे क्लाइंट/मिनियंस द्वारा निष्पादित करने की आवश्यकता होती है जो नियंत्रित सिस्टम हैं।
साल्टसैक घटक
निम्नलिखित हैं जिनसे साल्टस्टैक बनता है
- मास्टर :दासों को निर्देश जारी करने और निष्पादन के बाद उन्हें वांछित स्थिति में बदलने के लिए जिम्मेदार।
- मिनियन :यह नियंत्रित प्रणाली है जिसे किसी वांछित अवस्था में बदलने की आवश्यकता है।
- नमक के दाने : यह मिनियन के संबंध में स्थिर डेटा या मेटाडेटा है और यह मॉडल, सीरियल नंबर, मेमोरी क्षमता और ऑपरेटिंग सिस्टम जैसी जानकारी का गठन करता है। उन्हें तब एकत्र किया जाता है जब मिनियन पहली बार सर्वर से जुड़ता है। उनका उपयोग किसी पहलू के संबंध में मंत्रियों के एक निश्चित समूह को लक्षित करने के लिए किया जा सकता है। उदाहरण के लिए, आप Windows ऑपरेटिंग सिस्टम वाली सभी मशीनों के लिए MongoDB स्थापित करते हुए एक कमांड चला सकते हैं।
- Eनिष्पादन मॉड्यूल/निर्देश :ये एक या अधिक लक्षित मंत्रियों को जारी किए गए तदर्थ आदेश हैं और कमांड लाइन से निष्पादित किए जाते हैं।
- खंभे :मिनियन के बीच वितरित उपयोगकर्ता परिभाषित चर हैं। इनका उपयोग निम्न के लिए किया जाता है:मिनियन कॉन्फ़िगरेशन, अत्यधिक संवेदनशील डेटा, मनमाना डेटा और चर। सभी खंभों तक सभी खंभों की पहुंच नहीं है, कोई यह सीमित कर सकता है कि खंभों के एक निश्चित समूह के लिए कौन से स्तंभ हैं।
- राज्य फ़ाइलें . यह साल्ट स्टेट सिस्टम (SLS) का मूल है और यह उस स्थिति का प्रतिनिधित्व करता है जिसमें सिस्टम होना चाहिए। यह Ansible के मामले में एक प्लेबुक के बराबर है, यह देखते हुए कि वे YAML प्रारूप में भी हैं यानी
#/srv/salt/mongodbInstall.sls (file root)
install_mongodb: (task id)
pkg.installed: (state declaration)
-name:mongodb (name of package to install)
-
शीर्ष फ़ाइल :मशीनों के एक समूह को मैप करने और यह परिभाषित करने के लिए उपयोग किया जाता है कि किस राज्य की फाइलों को लागू किया जाना चाहिए। यानी
#/srv/salt/top.sls
base:
‘minion1’:
-mongodb
-
नमक प्रॉक्सी : यह एक ऐसी सुविधा है जो उन उपकरणों को नियंत्रित करने में सक्षम बनाती है जो एक मानक नमक-मिनियन नहीं चला सकते। इनमें एक मालिकाना ओएस पर चलने वाले एपीआई के साथ नेटवर्क गियर, सीपीयू और मेमोरी सीमा वाले डिवाइस या सुरक्षा कारणों से मिनियन नहीं चल सकने वाले उपकरण शामिल हैं। इन उपकरणों की खोज, नियंत्रण, दूरस्थ निष्पादन और राज्य प्रबंधन के लिए एक जूनोस प्रॉक्सी का उपयोग किया जाना है।
सॉल्टस्टैक इंस्टालेशन
सॉल्टस्टैक को इस रूप में स्थापित करने के लिए हम पाइप कमांड का उपयोग कर सकते हैं
$ pip install salt
इंस्टॉलेशन की पुष्टि करने के लिए, $ Salt --version कमांड चलाएँ और आपको नमक 2019.2.2 (फ्लोरीन) जैसा कुछ मिलना चाहिए
मास्टर से जुड़ने से पहले मिनियन को मास्टर आईपी एड्रेस और मिनियन आईडी के न्यूनतम कॉन्फ़िगरेशन की आवश्यकता होगी जो मास्टर द्वारा इसके संदर्भ के लिए उपयोग किया जाएगा। ये विन्यास फाइल /etc/salt/minion में किया जा सकता है।
फिर हम मास्टर को विभिन्न मोड में चला सकते हैं जो डेमॉन या डिबग मोड में है। डेमॉन केस के लिए आपके पास $salt-master -d और डिबग मोड के लिए, $salt-master -l डिबग होगा। $ Salt-key -a nameOfMinion चलाकर इसे शुरू करने से पहले आपको मिनियन की कुंजी को स्वीकार करना होगा। उपलब्ध कुंजियों को सूचीबद्ध करने के लिए, $ Salt-key -l
run चलाएँमिनियन के मामले में, हम इसे $salt-minion -l डिबग से शुरू कर सकते हैं।
उदाहरण के लिए, यदि हम मास्टर से सभी मिनियन में एक फ़ाइल बनाना चाहते हैं, तो हम कमांड चला सकते हैं
$ salt ‘’*” file.touch ‘/tmp/salt_files/sample.text
साल्ट_फाइल्स फोल्डर में सभी नोड्स में एक नया नमूना टेक्स्ट फाइल होगी। * विकल्प का उपयोग सभी मिनियनों को संदर्भित करने के लिए किया जाता है। उदाहरण के लिए स्ट्रिंग मिनियन वाले आईडी नाम वाले सभी मिनियन निर्दिष्ट करने के लिए, हम नीचे दिए गए रेगेक्स एक्सप्रेशन का उपयोग करेंगे
$ salt “minion*” file.touch ‘/tmp/salt_files/sample.text
किसी दिए गए मिनियन के लिए एकत्रित मेटाडेटा देखने के लिए, दौड़ें:
$salt ‘minion1’ grains.items.
MongoDB को साल्टस्टैक के साथ सेट अप करना
हम नीचे दी गई सामग्री के साथ setDatabase.sls के साथ myAppdata नामक डेटाबेस बना सकते हैं
classes:
- service.mongodb.server.cluster
parameters:
_param:
mongodb_server_replica_set: myAppdata
mongodb_myAppdata_password: myAppdataPasword
mongodb_admin_password: cloudlab
mongodb_shared_key: xxx
mongodb:
server:
database:
myAppdata:
enabled: true
password: ${_param:mongodb_myAppdata_password}
users:
- name: myAppdata
password: ${_param:mongodb_myAppdata_password}
एकल MongoDB सर्वर प्रारंभ करना
mongodb:
server:
enabled: true
bind:
address: 0.0.0.0
port: 27017
admin:
username: admin
password: myAppdataPasword
database:
myAppdata:
enabled: true
encoding: 'utf8'
users:
- name: 'username'
password: 'password'
SaltStack के साथ MongoDB क्लस्टर सेट करना
mongodb:
server:
enabled: true
logging:
verbose: false
logLevel: 1
oplogLevel: 0
admin:
user: admin
password: myAppdataPasword
master: mongo01
members:
- host: 192.168.100.11
priority: 2
- host: 192.168.101.12
- host: 192.168.48.13
replica_set: default
shared_key: myAppdataPasword
निष्कर्ष
ClusterControl की तरह, SaltStack एक स्वचालन उपकरण है जिसका उपयोग परिनियोजन और संचालन कार्यों को आसान बनाने के लिए किया जा सकता है। ऑटोमेशन टूल के साथ, कम त्रुटियां होती हैं, कॉन्फ़िगरेशन का समय कम होता है, और अधिक विश्वसनीय परिणाम होते हैं।