स्वचालित सर्वर परिनियोजन


28

मुझे लगता है मैं लगातार अपने ग्राहकों के एक नंबर के लिए लगभग समान सर्वर और VPSs की लगातार सेटिंग कर रहा हूं और यह बहुत समय लेने वाला हो सकता है। अक्सर केवल एक चीज जो प्रत्येक परिनियोजन के बीच बदलती है, वह है अलग वेबसाइट जिसे परोसा जाना है। क्या यह सब स्वचालित करने और 56 समान सर्वर स्थापित करने की उबाऊ एकरसता लेने का एक आसान तरीका है?

अब तक मैंने जो सर्वर तैनात किए हैं वे केवल उबंटू हैं, लेकिन यह संभव हो सकता है कि मैं अन्य लिनक्स ओएस या यहां तक ​​कि विंडोज का उपयोग करना शुरू कर दूं। अब तक मैंने कैपिस्ट्रानो को देखा है, लेकिन ऐसा लगता है कि काम करने के लिए थोड़ा रूबी कार्यक्रम लिखने पर ध्यान केंद्रित किया गया है, और मुझे इसका कोई ज्ञान नहीं है


जवाबों:


20

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

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

कठपुतली घोषणात्मक है - यह आपको प्रत्येक बक्से के संसाधनों के संदर्भ में अपने बक्से का वर्णन करने की अनुमति देता है। इसलिए यदि आप चाहते हैं ssh- आप उस संसाधन के लिए एक वर्ग लिखते हैं - और कक्षा के अंदर आप तर्क शामिल कर सकते हैं कि ssh को FreeBSD बनाम उबंटू पर कैसे थोड़ा अलग कहा जाता है। यह yumरेडहैट के अंदर और apt-getडेबियन आधारित डिस्ट्रोस के अंदर, और portsबीएसडी में उपयोग करना जानता है । अब आपके सर्वर नोड में, आपके पास बस एक पंक्ति include sshहोगी - और कठपुतली सही काम करेगी और मशीन पर एसएसएच डाल देगी बिना यह याद रखे कि उबंटू या रेडहैट या फ्रीबीएसडी है।

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

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

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

अंत में, यहां एक त्वरित वीडियो है जो एक सरल कठपुतली डेमो करता है जो मुझे जल्दी से शुरू हुआ।


3
Digg.com अपने सर्वर को प्रबंधित करने के लिए कठपुतली का उपयोग करते हैं, कुछ बुनियादी उदाहरण उनके ब्लॉग पर पाए जा सकते हैं: blog.digg.com/?p=335 blog.digg.com/?p=562
एडम गिबिन्स

मेरा मानना ​​है कि फेडोरा एडमिन टीम कठपुतली का भी उपयोग करती है।
मेई

9

हम वास्तविक और आभासी दोनों मशीनों के निर्माण और विन्यास स्वचालन के लिए कॉबलर और कठपुतली का उपयोग करते हैं।

कोब्लर ने एक मशीन प्रोफाइल को जोड़ने और पावर बटन को मारने से ज्यादा कुछ नहीं करने के लिए डीएचसीपी, पीएक्सई बूट और किकस्टार्ट को एक साथ जोड़ा। VMs के लिए, koan कमांड स्थापना शुरू करने के लिए (हमारे मामले में) Xen जादू करता है - dom0मैं सिर्फ टाइप पर:

koan --system vps.fqdn --server cobbler --no-gfx

फिर virsh consoleबिना किसी इंटरैक्शन के VPS बिल्डिंग देखना।

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

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

कठपुतली वाकई कमाल की है। आपको इसके नियंत्रण के तहत अपने कॉन्फ़िगरेशन के हर पहलू को प्राप्त करने की आवश्यकता नहीं है - इसे शुरू करने के बाद इसे कुछ सरल प्रबंधित करें जिसे आपको हर बॉक्स पर कॉन्फ़िगर करने की आवश्यकता है ( sudoersविहित उदाहरण है) और इसे वहां से ले जाएं। सुनिश्चित करें कि आपके कठपुतली मैनिफेस्ट्स भी संस्करणित हैं; कुछ भी नहीं आसानी से समायोजित करने के लिए याद करने के लिए एक ज्ञात-अच्छा विन्यास को वापस करने में सक्षम होने से बेहतर नहीं है।


6

जहां मैं इस समय काम कर रहा हूं, हमें अपने सर्वर फ़ार्म के लिनक्स भाग का प्रबंधन करना होगा जो अभी 300 से अधिक लिनक्स सर्वरों पर है। इसमें ज्यादातर HP Proliants शामिल हैं, इसके बाद IBM 3850s, कुछ IBM ब्लेड्स, VMware ESX और हमारे आंतरिक प्रबंधन सर्वर के लिए कुछ KVM शामिल हैं।

मोची

हमने मोची को देखा, लेकिन समस्या यह थी कि मोची बहुत RHEL / Red Hat विशिष्ट है। हमें कम से कम RHEL और SLES का समर्थन करने की आवश्यकता है, और उबंटू अगले है।

कठपुतली

हमने कठपुतली पर विचार किया, हालांकि बाद में इसके खिलाफ फैसला किया क्योंकि यह रूबी पर निर्भर करता है, जिसका अर्थ है कि रूबी का उन्नयन, संभवतः इस प्रबंधन प्रणाली को तोड़ सकता है।

गर्म तार

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

बोनस अंक हैं कि यह इन्वेंट्री को जोड़ती है और एक में प्रक्रिया का निर्माण करती है, इसलिए प्रबंधन करने के लिए कम है, और लाइव-इन्वेंट्री सुविधा महान है क्योंकि हम जानते हैं कि कुछ काफी सही नहीं है।

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

cfengine

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

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


आपने पपेट के खिलाफ फैसला किया क्योंकि यह रूबी पर निर्भर करता है? इसके आधार पर आप लगभग किसी भी चीज़ के खिलाफ फैसला कर सकते हैं, क्योंकि एक परिवाद या कर्नेल उन्नयन इसे तोड़ सकता है।
क्रिस्टियान सियुपिटु

2
आप एक बिंदु बढ़ाते हैं, लेकिन अंत में, यह एक समझौता है - मैं अगले उन्नयन के बारे में "चिंता" करने के लिए कितने पैकेज चाहता हूं। यदि कर्नेल / ग्लिब अपग्रेड गलत हो जाता है - आप सामान्य रूप से लगभग तुरंत पता लगाने की उम्मीद करेंगे क्योंकि यह ओएस का सबसे मौलिक घटक है, हालांकि अगर रूबी थोड़ा अलग है, तो आप वास्तव में नोटिस नहीं करेंगे, लेकिन जब आप करते हैं, तो आप उस संस्करण पर पहले से ही 300 सर्वर अपग्रेड और चल रहे हैं, और अब कठपुतली इसका शिकार है। लेकिन फिर, मैं पत्थर में कुछ भी नहीं कर रहा हूं; यह बात पर मेरी प्राथमिकता है।
ज़ेरक्सस

5

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


1
यह मत भूलो कि Opscode शेफ कुकबुक के उपयोग के लिए एक स्वस्थ स्टैक प्रदान करता है।
jtimberman

3

लक्ष्य प्रणाली के आधार पर स्थापना को स्वचालित करने के लिए:

  • डेबियन / उबंटू: एफएआई या डी प्रीसेडिंग
  • रेडहैट / फेडोरा: किकस्टार्ट
  • नोवेल / ओपनएसयूएसई: ऑटोवाईएसटी
  • सोलारिस: जम्पस्टार्ट
  • Windows: unattended.sourceforge.net

इसके शीर्ष पर कॉन्फ़िगरेशन प्रबंधन के लिए मैं कठपुतली का उपयोग करने का सुझाव दूंगा।



2

यहाँ कठपुतली के लिए एक और वोट। हम सभी सर्वर और एप्लिकेशन इंस्टॉलेशन और कॉन्फ़िगरेशन प्रबंधन करने के लिए इसका बड़े पैमाने पर उपयोग करते हैं। 200+ नोड्स और गिनती। विंडोज़ का समर्थन स्पष्ट रूप से विकास में है, हालांकि मैं किस स्थिति में निश्चित नहीं हूं।

हम अभी भी चीजों के प्रारंभिक OS बूटस्ट्रैप पक्ष में देख रहे हैं, लेकिन जैसा कि ऊपर बताया गया है कि कोब्बलर दिलचस्प है। हम वर्तमान में डेबियन / उबंटू प्रीसेडिंग के साथ पीएक्सई बूटिंग के मिश्रण का उपयोग कर रहे हैं, लेकिन यह शायद ही इष्टतम है।


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