कई सर्वरों पर एक अनुप्रयोग का प्रबंधन, या cxEngine / बावर्ची / कठपुतली बनाम PXE


15

हमारे पास एक एप्लिकेशन है जो कुछ (5 या तो और बढ़ेगा) बक्से पर चल रहा है। हार्डवेयर सभी मशीनों में समान है, और आदर्श रूप से सॉफ्टवेयर भी होगा। मैं अब तक उन्हें संभाल रहा हूं, और अब (स्थिर आईपी पते, सभी आवश्यक सेवाओं को अक्षम करना, आवश्यक पैकेज स्थापित करना ...) नहीं करना चाहता। क्या कोई भी निम्नलिखित विकल्पों के पेशेवरों और विपक्षों को संतुलित कर सकता है, या कुछ और बुद्धिमानी सुझा सकता है?

1: सभी बक्सों पर व्यक्तिगत रूप से सेंटो स्थापित करें और शेफ / कोफीन / कठपुतली के साथ विन्यास का प्रबंधन करें। यह अच्छा होगा, क्योंकि मैं अनुप्रयोगों में से एक का उपयोग करने के लिए सीखने का बहाना चाहता हूं, लेकिन मुझे नहीं पता कि क्या यह वास्तव में सबसे अच्छा समाधान है।

2: एक बॉक्स को सही बनाएं और उसे इमेज करें। पीएक्सई पर छवि की सेवा करें और जब भी मैं संशोधन करना चाहता हूं, मैं सिर्फ एक नई छवि से बक्से को रिबूट कर सकता हूं। कैसे क्लस्टर लोग आमतौर पर / etc / sysconfig / network-script / ifcfg * फ़ाइलों में मैक एड्रेस होने जैसी चीजों को संभालते हैं? हम infiniband का भी उपयोग करते हैं, और यह भी शुरू करने से इंकार कर देता है यदि हवादार गलत है। क्या ये बूट पर सही तरीके से उत्पन्न हो सकते हैं?

मैं पीएक्सई समाधान की ओर झुक रहा हूं, लेकिन मुझे लगता है कि मुनिन या नगियोस के साथ निगरानी इस से थोड़ी अधिक जटिल होगी। किसी को भी इस तरह की समस्या के साथ अनुभव है?

सभी सर्वरों में एसएसडी होते हैं और वे तेज और शक्तिशाली होते हैं।

धन्यवाद, मैट।

जवाबों:


12

आपका क्लस्टर मेरी तरह एक ओएलटीपी से एचपीसी क्लस्टर की तरह लगता है, लेकिन मुझे लगता है कि मैं जो सेटअप उपयोग कर रहा हूं वह आपके लिए भी काम करेगा। मैं इसे "mpdehaan trifecta" कहता हूं, क्योंकि इसमें उस लड़के की ircnick है, जिसने तीन टूल को लिखा या प्रबंधित किया है।

1.) बेस-बिल्ड प्रोविजनिंग के लिए मोची । कोब्बलर एक ऐसी परियोजना है जिसका उद्देश्य आपके किकस्टार्ट, pxe, yum-repo, dhcp, dns, आदि सिस्टमों का प्रतिच्छेदन होना है। किकस्टार्ट सेटअप प्राप्त करने और चलाने के लिए इसका सबसे आसान तरीका है, और आप आवश्यकतानुसार अन्य सुविधाओं में विकसित कर सकते हैं।

2.) विन्यास प्रबंधन के लिए कठपुतली । आदर्श रूप में अपने मोची बनाया मेजबान बहुत कॉन्फ़िगरेशन पता है कि barebones हैं सिर्फ स्टार्टअप पर अपने कठपुतली सर्वर से फोन घर के लिए पर्याप्त। कठपुतली तब आपकी कॉन्फ़िगरेशन सेटिंग्स लागू करेगा और उन्हें आपके वातावरण में निरंतरता के अनुरूप रखेगा।

3.) समारोह तदर्थ आदेशों समानांतर में कई मशीनों के लिए। उदाहरण के लिए "कोड का एक नया svn चेकआउट तैनात करें और अपाचे को पुनरारंभ करें"। यह बहुत आसान है सिर्फ क्लस्टर के जैसे सर्वरों के समूह पर एक ही बैश कमांड को कॉल करने के लिए फंक का उपयोग करना। यदि आप वास्तव में इसे प्राप्त करना चाहते हैं, तो आप इसके लिए अपने स्वयं के मॉड्यूल को कुछ बहुत ही सरल अजगर के साथ लिख सकते हैं।

इन तीनों उपकरणों में फ़्रीकोड पर मदद के लिए अच्छे विकी और सक्रिय irc चैनल हैं।


मुझे लगता है कि यह समाधान है जिसके लिए मैं जा रहा हूं। मैं इसे एक शॉट दूंगा और आप सभी को बताऊंगा। मैं शायद इस प्रक्रिया को भी ब्लॉग करूंगा। धन्यवाद!
मैट

5

अवलोकन

कुछ मायनों में, आपके यहाँ दो सवाल हैं ।।

  • मैं मानक सर्वरों का निर्माण और रखरखाव कैसे करूं?
  • मैं मानक कॉन्फ़िगरेशन कैसे बनाए रखूं और बाद में परिवर्तन करूं?

मैंने अपना उत्तर नीचे दो अलग-अलग चीजों को संबोधित करते हुए विभाजित किया है, लेकिन वे बहुत निकट से संबंधित हैं। मैं यहां प्रौद्योगिकी समाधानों को संबोधित कर रहा हूं, न कि किसी भी सर्वोत्तम प्रथा से संबंधित हैं, जैसे परिवर्तन नियंत्रण।

यदि यह आपके प्रश्न के दायरे को कवर नहीं करता है, तो कृपया स्पष्ट करें और मुझे विस्तृत रूप से खुशी होगी। यह आवश्यक नींव है, जो एक अच्छी तरह से चलने वाली प्रौद्योगिकी बुनियादी ढांचे के लिए महत्वपूर्ण है।

भवन सेवक

मुझे UNIX दुनिया में चित्र पसंद नहीं हैं; यह एक विंडोज शैली दृष्टिकोण का अधिक है। यहां तक ​​कि कुछ विंडोज लोग मानक बिल्ड के लिए स्क्रिप्ट्स पर रीफोकस करते दिखते हैं।

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

आदर्श रूप से, आप सभी आवश्यक सॉफ़्टवेयर के लिए एक फाइलरवर पर स्थानीय दर्पण और रिपॉजिटरी स्थापित करना चाहेंगे।

सबसे पहले, अपने वितरण बिल्ड ऑटोमेशन का लाभ उठाएं, जैसे कि आरएचईएल / सेंटोस में किकस्टार्ट। किकस्टार्ट आपकी आवश्यकताओं के आधार पर विविधताओं के साथ एक आधार रेखा होगी। किकस्टार्ट बिल्ड को पीएक्सई सर्वर से शुरू किया जा सकता है।

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

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



मानक बनाए रखना

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

यदि आप अपने सबसे महत्वपूर्ण सर्वर भूमिकाओं के लिए अपने स्वयं के स्रोत आधारित बिल्ड बनाने के विरोध में सिस्टम पैकेजों पर भरोसा करना चुनते हैं, तो बहुत कुछ देशी सिस्टम उपयोगिताओं के साथ बनाए रखा जा सकता है। यह forआपके सर्वर सूची के खिलाफ लूप चलाने और चलाने के लिए एक स्क्रिप्ट के रूप में सरल हो सकता है yum -y update package

कॉन्फ़िगरेशन प्रबंधन के लिए, यह वह जगह है जहाँ कठपुतली, cfengine, और अन्य विन्यास प्रबंधन उपयोगिताओं खेल में आते हैं। ये बहुत उपयोगी उपयोगिताओं हैं और खरोंच से अपनी खुद की स्क्रिप्ट लिखने के बिना आवश्यक आधार प्रदान करते हैं।

जब आप अपने सर्वर के लिए अपने कॉन्फ़िगरेशन मानकों को अपडेट करते हैं, तो इसे अपने मानक सर्वर बिल्ड में बैकफ़िल करना महत्वपूर्ण है।


0

मैंने हाल ही में $ वर्क्स में एक केंद्रीकृत निर्माण / प्रावधान और विन्यास प्रबंधन प्रणाली को रोल आउट करने के लिए एक बड़ी परियोजना को पूरा किया। हम CentOS चला रहे हैं।

मेरा डिज़ाइन, जिसे मैं वास्तव में पसंद करता हूं, हमें एक वस्तुतः एक-क्लिक (अच्छी तरह से, एक वेब जीयूआई पेज) निर्माण प्रक्रिया देता है, एक सरल लेकिन प्रभावी वेब यूआई के माध्यम से सब कुछ एक साथ टाई करने के लिए कुछ कस्टम PHP स्क्रिप्ट का उपयोग करता है।

सामान्य सिद्धांत है:

  1. सभी को एक एकल, एकीकृत, न्यूनतम किकस्टार्ट फ़ाइल से स्थापित करें (अच्छी तरह से, ठीक है, x86 के लिए एक और x86-64 के लिए एक, लेकिन फिर भी, न्यूनतम पैकेज चयन के साथ लगभग समान फाइलें)।
  2. किकस्टैट स्क्रिप्ट बूटस्ट्रैप को कठपुतली के बाद स्थापित करता है।
  3. कठपुतली सभी नोड / होस्ट-विशिष्ट कॉन्फ़िगरेशन, पैकेज स्थापना, आदि पर लागू होती है

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

आप कठपुतली को किसी भी अन्य विन्यास प्रबंधन प्रणाली से बदल सकते हैं जो बिल को फिट करता है, लेकिन मुझे कठपुतली की घोषणा की प्रकृति और इसके अभिसरण की अवधारणा पसंद है।

इस प्रणाली से कई लाभ मिलते हैं:

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

0

यदि आप pxe मार्ग से नीचे जाते हैं, तो एक नज़र रखना सुनिश्चित करें

http://etherboot.org/wiki/index.php

Gpxe आपको बूट लक्ष्य के साथ अधिक लचीलापन देगा। यह एओ ब्लेड के बूट के लिए काफी आसान है और रिमोट http सर्वर से कर्नेल को बूट करने जैसा कुछ नहीं है !!!!!!!!!! :-)।

आपको किस सर्वर की आवश्यकता है?

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

Pxe की तरफ, आपको कुछ विकल्प मिले हैं, जो आपकी फ़ाइल I / O के क्लस्टर पर निर्भर करता है। या तो बस कर्नेल को बूट करें और एओ या इस्की पर दूर से डिस्क को माउंट करें।

आप लेखन चित्रों पर प्रतिलिपि के साथ कुछ बहुत ही चतुर सामान भी कर सकते हैं। यह उन्नयन और समस्याग्रस्त हो सकने वाले किसी भी परिवर्तन को वापस लाने के लिए बहुत अच्छा है।

मैंने भी nfs रूट का उपयोग करके सफलता प्राप्त की है, एक क्लस्टर किए गए nfs समाधान का उपयोग करके। आप अपने क्लाइंट पते के आधार पर अलग-अलग फ़ाइलों को निर्दिष्ट कर सकते हैं।

फिर, आपको यह देखना होगा कि क्या आपके एप्लिकेशन को nfs चलाना पसंद है। यह हर कार्यभार के लिए अनुकूल नहीं है।

क्लस्टर किए गए nfs में 192.168.0.1:/etc/hostname 192.168.0.2:/etc/hostname शामिल हो सकते हैं

इसलिए, प्रत्येक क्लाइंट एक ही फाइल को संदर्भित करता है, लेकिन क्लाइंट के लिए प्रासंगिक फ़ाइल की सेवा प्राप्त करें। यह बहुत प्रभावशाली सामान है, हालांकि यह सरल नहीं है!

यदि आप नेटवर्क सिस्टम पर फ़ाइल सिस्टम को केंद्रीकृत करते हैं तो यह सब आपको जल्दी रोलआउट समय देगा। किसी नेटवर्क पर किसी दूरस्थ डिस्क पर ऑपरेटिंग सिस्टम को लागू करने में समय लगता है !!!!

यदि आपका कोई भी इन समाधानों का उपयोग कर रहा है, तो सुनिश्चित करें कि आपके पास अच्छी तरह से डिज़ाइन किया गया है और गलती सहिष्णु नेटवर्क परत है और आपके nfs / SAN सर्वर को अच्छी तरह से डिज़ाइन किया गया है + सुरक्षित!

आपके NFS / SAN का कनेक्शन खोने से सर्वर की सेहत खराब होगी। :-(

बूट प्रक्रिया को नियंत्रित करने के लिए tftp / pxe के लिए कुछ स्क्रिप्ट्स को तैयार करना काफी आसान है।

अगर मुझे अधिक पता था कि वास्तव में आपके क्लस्टर बनाने की कोशिश कर रहा हूं तो मैं शायद एक समाधान सोच सकता हूं जो आपके लिए अधिक अनुकूल था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.