MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB डेटाबेस परिनियोजन स्वचालन

संगठन क्लाउड में बुनियादी ढांचे का उपयोग कर रहे हैं क्योंकि यह गति, लचीलापन और मापनीयता प्रदान करता है। आप कल्पना कर सकते हैं कि यदि हम केवल एक क्लिक के साथ एक नया डेटाबेस उदाहरण स्पिन कर सकते हैं, और इसके तैयार होने में कुछ मिनट लगते हैं, तो हम ऑन-प्रिमाइसेस परिवेश की तुलना में एप्लिकेशन को तेज़ी से परिनियोजित कर सकते हैं।

जब तक आप MongoDB की अपनी क्लाउड सेवा का उपयोग नहीं कर रहे हैं, तब तक प्रमुख क्लाउड प्रदाता प्रबंधित MongoDB सेवा प्रदान नहीं करते हैं, इसलिए यह वास्तव में एकल इंस्टेंस या क्लस्टर को परिनियोजित करने के लिए एक-क्लिक ऑपरेशन नहीं है। सामान्य तरीका वीएम को स्पिन करना और फिर उन्हें इन पर तैनात करना है। ए से जेड तक परिनियोजन का ध्यान रखने की आवश्यकता है - हमें उदाहरण तैयार करने, डेटाबेस सॉफ़्टवेयर स्थापित करने, कुछ कॉन्फ़िगरेशन को ट्यून करने और इंस्टेंस को सुरक्षित करने की आवश्यकता है। ये कार्य आवश्यक हैं, हालांकि इनका हमेशा ठीक से पालन नहीं किया जाता है - संभावित विनाशकारी परिणामों के साथ।

ऑटोमेशन यह सुनिश्चित करने में महत्वपूर्ण भूमिका निभाता है कि स्थापना, कॉन्फ़िगरेशन, हार्डनिंग से लेकर डेटाबेस सेवा के तैयार होने तक सभी कार्यों को सुनिश्चित किया जाए। इस ब्लॉग में, हम MongoDB के लिए परिनियोजन स्वचालन पर चर्चा करेंगे।

सॉफ़्टवेयर ऑर्केस्ट्रेटर

इंजीनियरों को उनके बुनियादी ढांचे को तैनात और प्रबंधित करने में मदद करने के लिए बहुत सारे नए सॉफ़्टवेयर टूलिंग हैं। कॉन्फ़िगरेशन प्रबंधन नई सेवाओं के लिए परिनियोजन समय को कम करते हुए, इंजीनियरों को तेजी से और प्रभावी ढंग से तैनात करने में मदद करता है। लोकप्रिय विकल्पों में Ansible, Saltstack, Chef और Puppet शामिल हैं। हर उत्पाद के फायदे और नुकसान होते हैं, लेकिन वे सभी बहुत अच्छी तरह से काम करते हैं और बेहद लोकप्रिय हैं। MongoDB ReplicaSet या Shared Cluster जैसी स्टेटफुल सर्विस को डिप्लॉय करना थोड़ा अधिक चुनौतीपूर्ण हो सकता है क्योंकि ये मल्टी-सर्वर सेटअप हैं और टूल्स में इंक्रीमेंटल और क्रॉस नोड कोऑर्डिनेशन के लिए खराब सपोर्ट है। परिनियोजन प्रक्रियाएं आमतौर पर एक विशिष्ट क्रम में किए गए कार्यों के साथ, नोड्स में ऑर्केस्ट्रेशन के लिए कॉल करती हैं।

स्वचालित करने के लिए MongoDB परिनियोजन कार्य

एक MongoDB सर्वर के परिनियोजन में कई चीज़ें शामिल होती हैं; स्थानीय में MongoDB रिपॉजिटरी जोड़ें, MongoDB पैकेज स्थापित करें, पोर्ट, उपयोगकर्ता नाम कॉन्फ़िगर करें और सेवा शुरू करें।

कार्य:MongoDB स्थापित करें

- name: install mongoDB
  apt: 
    name: mongodb
    state: present
    update_cache: yes

कार्य:कॉन्फ़िगरेशन फ़ाइल से mongod.conf को कॉपी करें।

- name: copy config file
  copy:
    src: mongodb.conf
    dest: /etc/mongodb.conf
    owner: root
    group: root
    mode: 0644
  notify:
    - restart mongodb

कार्य:MongoDB सीमा कॉन्फ़िगरेशन बनाएं:

- name: create /etc/security/limits.d/mongodb.conf
  copy:
    src: security-mongodb.conf
    dest: /etc/security/limits.d/mongodb.conf
    owner: root
    group: root
    mode: 0644
  notify:
    - restart mongodb

कार्य:अदला-बदली को कॉन्फ़िगर करना

- name: config vm.swappiness
  sysctl:
    name: vm.swappiness
    value: '10'
    state: present

कार्य:TCP Keepalive समय कॉन्फ़िगर करें

- name: config net.ipv4.tcp_keepalive_time
  sysctl:
    name: net.ipv4.tcp_keepalive_time
    value: '120'
    state: present

कार्य:सुनिश्चित करें कि MongoDB स्वचालित रूप से प्रारंभ हो जाएगा

- name: Ensure mongodb is running and and start automatically on reboots
  systemd:
    name: mongodb
    enabled: yes
    state: started

हम इन सभी कार्यों को एक एकल प्लेबुक में जोड़ सकते हैं और परिनियोजन को स्वचालित करने के लिए प्लेबुक चला सकते हैं। अगर हम कंसोल से Ansible playbook चलाते हैं:

$ ansible-playbook -b mongoInstall.yml

हम अपनी Ansible स्क्रिप्ट से परिनियोजन की प्रगति देखेंगे, आउटपुट कुछ इस तरह होना चाहिए:

PLAY [ansible-mongo] **********************************************************

GATHERING FACTS ***************************************************************
ok: [10.10.10.11]

TASK: [install mongoDB] *******************************************************
ok: [10.10.10.11]

TASK: [copy config file] ******************************************************
ok: [10.10.10.11]

TASK: [create /etc/security/limits.d/mongodb.conf]*****************************
ok: [10.10.10.11]


TASK: [config vm.swappiness] **************************************************
ok: [10.10.10.11]

TASK: [config net.ipv4.tcp_keepalive_time]*************************************
ok: [10.10.10.11]

TASK: [config vm.swappiness] **********************************************
ok: [10.10.10.11]

PLAY RECAP ********************************************************************
[10.10.10.11]          : ok=6    changed=1    unreachable=0    failed=0

तैनाती के बाद, हम लक्ष्य सर्वर पर MongoDB सेवा की जांच कर सकते हैं।

ClusterControl GUI का उपयोग करके MongoDB का परिनियोजन स्वचालन

ClusterControl का उपयोग करके MongoDB को परिनियोजित करने के दो तरीके हैं। हम इसे ClusterControl के डैशबोर्ड से उपयोग कर सकते हैं, यह GUI- आधारित है और जब तक यह MongoDB के नए परिनियोजन के लिए एक नया कार्य ट्रिगर नहीं करता, तब तक केवल 2 संवादों की आवश्यकता होती है।

सबसे पहले हमें SSH उपयोगकर्ता और पासवर्ड भरना होगा, नीचे दिखाए अनुसार क्लस्टर नाम भरें:

और फिर, MongoDB का विक्रेता और संस्करण चुनें, उपयोगकर्ता को परिभाषित करें और पासवर्ड, और अंतिम लक्ष्य आईपी पता भरना है

s9s CLI का उपयोग करके MongoDB का परिनियोजन स्वचालन

कमांड लाइन इंटरफेस से, कोई s9s टूल का उपयोग कर सकता है। S9s का उपयोग करते हुए MongoDB की तैनाती नीचे के रूप में सिर्फ एक लाइन कमांड है:

$ s9s cluster --create --cluster-type=mongodb --nodes="10.10.10.15"  --vendor=percona --provider-version=4.2 --db-admin-passwd="12qwaszx" --os-user=vagrant --cluster-name="MongoDB" --wait
Create Mongo Cluster
/ Job 183 FINISHED   [██████████] 100% Job finished.


इसलिए MongoDB को परिनियोजित करना, चाहे वह रेप्लिकासेट हो या साझा क्लस्टर, बहुत आसान है, और ClusterControl द्वारा पूरी तरह से स्वचालित है।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब संग्रह से वैध जेसन निर्यात करें

  2. कैसे वसंत डेटा का उपयोग कर मोंगो में जे एस फ़ाइल चलाने के लिए?

  3. आपके अनुप्रयोगों के लिए पारदर्शी डेटाबेस विफलता

  4. सभी मौजूदा फ़ील्ड शामिल करें और दस्तावेज़ में नए फ़ील्ड जोड़ें

  5. नेवले और तिथियों के साथ पूछताछ