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

Ansible . का उपयोग करके MongoDB की तैनाती और रखरखाव

प्रौद्योगिकी दिन-ब-दिन बदलती है और आधुनिक अनुप्रयोगों को अपने संगठनों की तेजी से वितरण अपेक्षाओं को पूरा करने के लिए गंभीर समायोजन करने की आवश्यकता है। दुर्भाग्य से, यह उन्हें अधिक जटिल, अधिक परिष्कृत और बनाए रखने में कठिन बनाता है।

डेटाबेस प्रबंधन के संदर्भ में, MongoDB के अंदर डेटा संरचना समय के साथ एप्लिकेशन की जरूरतों के अनुसार बदल जाती है और यह काफी महंगा (या बल्कि जोखिम भरा) हो सकता है।

लंबे समय में, हमें एक कुशल डेटाबेस को आसानी से कॉन्फ़िगर करने और सक्षम सॉफ़्टवेयर वितरण सुनिश्चित करने की आवश्यकता है। इन सभी को मैन्युअल तरीके से हासिल करना कई असफलताओं के साथ आता है जैसे कि

  1. टीम के सदस्यों के बीच जटिल समन्वय।
  2. कार्य दोहराव की उच्च संभावना
  3. बहुत सी मानवीय गलतियों और त्रुटियों के लिए अतिसंवेदनशील
  4. जटिलता को दूर करने में असहज
  5. सहयोग और नौकरी में असंतोष में कमी
  6. समय लेने वाली
  7. खराब जवाबदेही और अनुपालन

डेटाबेस प्रशासन की कठिनाइयाँ मुख्य रूप से

. पर केंद्रित हैं
  • तैनाती
  • रखरखाव
  • उन्नयन जो परिचालन ओवरहेड को 95% तक कम कर सकता है।

इसे प्राप्त करने में MongoDB के लिए बहुत समय और मैन्युअल प्रयास लग सकता है। सफलता सुनिश्चित करने के लिए आपको एक सरल प्रणाली की आवश्यकता होगी जिसके साथ आप यह सुनिश्चित कर सकते हैं कि ऊपर सूचीबद्ध सभी असफलताओं को एक ही मंच से समयबद्ध तरीके से संबोधित किया जा सकता है, अर्थात किसी तरह एक स्वचालित प्रणाली। बहुत सारे विकल्प हैं लेकिन इस लेख में, हम चर्चा करने जा रहे हैं कि Ansible का उपयोग कैसे किया जाता है।

क्या जवाबदेह है

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

मशीनों को आसानी से एजेंट-रहित तरीके से प्रबंधित किया जा सकता है, जिसमें मनुष्यों द्वारा "ऑडिटेबिलिटी" के इर्द-गिर्द डिज़ाइन की गई भाषा के उपयोग के माध्यम से सुरक्षा और विश्वसनीयता पर अधिक ध्यान दिया जाता है।

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

चूंकि Ansible डेटाबेस क्लस्टर सिस्टम का हिस्सा नहीं है, इसलिए इसे किसी भी दूरस्थ कंप्यूटर और आपके डेटाबेस होस्ट में किए गए कॉन्फ़िगरेशन में स्थापित किया जा सकता है। आपके ऑपरेटिंग सिस्टम के लिए कौन सा संस्करण उपयुक्त है, यह जानने के लिए कृपया इंस्टॉलेशन गाइड देखें।

Ansible, डिफ़ॉल्ट रूप से, SSH प्रोटोकॉल के माध्यम से डेटाबेस होस्ट से जुड़ता है।

जिम्मेदार प्लेबुक

Playbooks ऐसे टेम्प्लेट हैं जहां Ansible कोड लिखा जाता है, इसलिए Ansible को खुद ही निर्देशित करें कि इस तरह की टू-डू-लिस्ट तरीके से क्या निष्पादित किया जाए। वे YAML (फिर भी एक और मार्कअप भाषा) प्रारूप में लिखे गए हैं। प्रत्येक में चरण-दर-चरण संचालन होता है जो उपयोगकर्ता द्वारा एक विशेष मशीन पर किया जाता है जो क्रमिक रूप से चलता है। उनकी संरचना एक या एक से अधिक नाटकों से बनी है। एक प्ले मूल रूप से एक कोड ब्लॉक है जो किसी विशेष होस्ट के विरुद्ध परिभाषित निर्देशों के एक सेट को मैप करता है।

सामान्य रूप से प्रयुक्त YAML टैग Ansible में

  1. नाम

    यह वह टैग है जो Ansible playbook के नाम को परिभाषित करता है। ऐसा नाम सेट करने की सलाह दी जाती है जो सटीक रूप से परिभाषित करता है कि वह क्या करेगा।

  2. होस्ट

    यह एक मेजबान समूह या मेजबानों की सूची को परिभाषित करता है जिसके खिलाफ परिभाषित कार्यों को चलाया जाना है। यह एक अनिवार्य टैग है जो Ansible को बताता है कि कौन से होस्ट सूचीबद्ध किए गए कार्यों को चलाने के लिए हैं। चूंकि कार्य कई मशीनों पर या तो एक ही या दूरस्थ मशीनों पर किए जा सकते हैं, इसलिए इस टैग में मेजबान प्रविष्टि के समूह को परिभाषित किया जा सकता है।

  3. vars

    किसी भी अन्य प्रोग्रामिंग भाषा की तरह, आपको चर की आवश्यकता होगी। इस टैग के साथ, आप वेरिएबल को परिभाषित कर सकते हैं जिनका उपयोग आप अपनी प्लेबुक में करेंगे।

  4. कार्य

    यह टैग आपको निष्पादित किए जाने वाले कार्यों के एक समूह को सूचीबद्ध करने में सक्षम करेगा। कार्य वास्तव में ऐसे कार्य होते हैं जिन्हें करने की आवश्यकता होती है। एक कार्य फ़ील्ड कार्य के नाम को परिभाषित करता है जो अनिवार्य रूप से प्लेबुक के डिबगिंग के दौरान उपयोगकर्ता के लिए टेक्स्ट में मदद करता है। मॉड्यूल के रूप में परिभाषित कोड का एक टुकड़ा प्रत्येक कार्य द्वारा आंतरिक रूप से जुड़ा होता है और मॉड्यूल के भीतर उपयोग किए जाने वाले किसी भी तर्क को कार्य टैग के माध्यम से पारित किया जाता है।

एक साधारण प्लेबुक संरचना कुछ इस तरह दिखती है...

  --- नाम:डीबी होस्ट स्थापित और कॉन्फ़िगर करें:टेस्ट सर्वर बनें:हाँ संस्करण:mongoDB_Port:27017 कार्य:-नाम:मोंगोडब यम स्थापित करें:<डीबी स्थापित करने के लिए कोड> -नाम:स्थापित सेवा सुनिश्चित करें सक्षम है और सेवा चला रहा है:नाम:<आपकी सेवा का नाम>  

MongoDB स्थापित करने और प्रारंभ करने के लिए एक साधारण प्लेबुक लिखना

  1. रूट SSH एक्सेस को सक्षम करना

    प्रबंधित नोड्स के कुछ सेटअप आपको रूट उपयोगकर्ता के रूप में लॉग इन करने से रोक सकते हैं इसलिए इसे हल करने के लिए एक प्लेबुक को परिभाषित करने की आवश्यकता है। हम एक प्लेबुक enable-root-access.yml बनाएंगे जो इस तरह दिखेगी

    ---- होस्ट:ansible-test Remote_user:ubuntu कार्य:- नाम:रूट लॉगिन शेल सक्षम करें:sudo cp ~/.ssh/authorized_keys /root/.ssh/ 

    जब आप कमांड चलाते हैं

    $ ansible-playbook -i stock.txt -c ssh enable-root-access.yaml  

    आपको कुछ इस तरह दिखना चाहिए

    PLAY [Ansible-test] ************************************** ********************* तथ्यों को इकट्ठा करना ************* *********कार्य:[रूट लॉगिन सक्षम करें] ******* ************************************* खेलने *********************************************** **************** 
  2. mongodbInstall.yaml में होस्ट और उपयोगकर्ता चुनना

    ---- होस्ट्स:ansible-test Remote_user:root be:yes 
  3. निष्पादित किए जाने वाले कार्यों को जोड़ना

    कार्यों को क्रमिक रूप से निष्पादित किया जाता है, इसलिए हमें उन्हें क्रमबद्ध तरीके से रेखांकित करने की आवश्यकता है, अर्थात

    1. apt_key रिपॉजिटरी कुंजियाँ जोड़ने के लिए। MongoDB सार्वजनिक GPG कुंजी को पहले आयात करने की आवश्यकता है
      - नाम:पैकेज प्रबंधन प्रणाली द्वारा उपयोग की जाने वाली सार्वजनिक कुंजी आयात करें apt_key:keyserver=hkp://keyserver.ubuntu.com:80 id=7F0CEB10 राज्य=वर्तमान 
    2. मोंगोडीबी को जोड़ना>
    3. पैकेजों को स्थापित करना और मोंगोड शुरू करना, फिर स्थानीय पैकेज डेटाबेस को पुनः लोड करना
      - नाम:मोंगोडब उपयुक्त स्थापित करें:pkg=mongodb-org State=latest update_cache=yes सूचित करें:- mongodb प्रारंभ करें 
    4. सेवाओं का प्रबंधन, सेवाओं को शुरू करने और फिर से शुरू करने के लिए हैंडलर का उपयोग करना
      हैंडलर:- नाम:मोंगोडब सेवा शुरू करें:नाम =मोंगोड राज्य =शुरू  
मोंगोडीबी डीबीए बनें - मोंगोडीबी को प्रोडक्शन में लाना सीखें कि मोंगोडीबी को तैनात करने, मॉनिटर करने, प्रबंधित करने और स्केल करने के लिए आपको क्या जानने की जरूरत है मुफ्त में डाउनलोड करें

सामान्य प्लेबुक कोड इस तरह दिखना चाहिए

---- होस्ट:ansible-test Remote_user:root be:yes task:- नाम:पैकेज प्रबंधन प्रणाली द्वारा उपयोग की जाने वाली सार्वजनिक कुंजी आयात करें apt_key:keyserver=hkp://keyserver.ubuntu.com:80 id=7F0CEB10 राज्य =वर्तमान - नाम:MongoDB रिपॉजिटरी जोड़ें apt_repository:repo='deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' State=वर्तमान - नाम:mongodb उपयुक्त स्थापित करें:pkg =mongodb-org State=latest update_cache=yes सूचित करें:- mongodb हैंडलर शुरू करें:- नाम:mongodb सेवा शुरू करें:name=mongod State=started 

फिर हम इस फाइल को कमांड का उपयोग करके ansible के साथ चला सकते हैं

ansible-playbook -i entry.txt -c ssh mongodbInstall.yaml 

यदि प्लेबुक को सफलतापूर्वक निष्पादित किया गया है तो आपको इसे अपने टर्मिनल में देखना चाहिए

PLAY [Ansible-test] ************************************** ********************* तथ्यों को इकट्ठा करना ************* *********** ठीक:[12.20.3.105] ठीक:[12.20.3.106] कार्य:[पैकेज प्रबंधन प्रणाली द्वारा उपयोग की जाने वाली सार्वजनिक कुंजी आयात करें] *********** परिवर्तित:[12.20.3.105] परिवर्तित:[12.20.3.106] कार्य:[MongoDB रिपॉजिटरी जोड़ें] **** ********************************************** परिवर्तित:[12.20.3.105 ]परिवर्तित:[12.20.3.106]कार्य:[मोंगोडब स्थापित करें] ********************** *********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** बने ***************************************** ठीक:[12.20.3.106] ठीक :[12.20.3.105] रिकैप खेलें *************** *************12.20.3.105:ठीक =5 बदल गया =3 पहुंच योग्य =0 विफल =012.20.3.106:ठीक =5 बदल गया =3 पहुंच योग्य नहीं=0 विफल=0 

अगर अब आप मोंगो चलाते हैं, तो आपको मोंगो शेल के लिए निर्देशित किया जाएगा

MongoDB शेल संस्करण v4.0.3 से कनेक्ट हो रहा है:mongodb://127.0.0.1:27017Implicit session:session { "id" :UUID("07c88442-0352-4b23-8938-fdf6ac66f253") }MongoDB सर्वर वर्जन :4.0.3 MongoDB शेल में आपका स्वागत है। संवादात्मक सहायता के लिए, "सहायता" टाइप करें। अधिक व्यापक दस्तावेज़ीकरण के लिए, http://docs.mongodb.org/Questions? देखें। सहायता समूह का प्रयास करें http://groups.google.com/group/mongodb-user 

निष्कर्ष

Ansible एक सरल ओपन सोर्स आईटी इंजन है जो एप्लिकेशन परिनियोजन, सेवा ऑर्केस्ट्रेशन और क्लाउड प्रावधान को स्वचालित करता है।

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. क्या मैं इसे छोड़ने के बिना मोंगोडीबी में मौजूदा इंडेक्स को संशोधित कर सकता हूं?

  2. MongoDB:नेस्टेड सरणी फ़िल्टरिंग के साथ खोजें और खोजें

  3. पाइपलाइन एकत्रीकरण के साथ स्प्रिंग डेटा MongoDB लुकअप

  4. MongoDB में एक डेटाबेस से दूसरे डेटाबेस में संग्रह की प्रतिलिपि कैसे करें

  5. Node.js + mongoose 100 से अधिक परिणाम मिलने पर फ़्रीज़ नोड ढूंढते हैं