मैं एक ही समय में कई समान सर्वर पर Nginx कॉन्फ़िगरेशन फ़ाइल को कैसे अपडेट करूं?


12

हमें अमेज़ॅन EC2 पर Nginx सर्वरों का एक बेड़ा मिला है जहां हमें नई सेटिंग्स को लागू करने के लिए कभी-कभी कॉन्फ़िगरेशन फ़ाइलों को अपडेट करने की आवश्यकता होती है।

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


3
ansible, कुछ नाम रखने के लिए नमक।
गरीब

जवाबों:


26

कई अवधारणाएँ हैं जिनका आप लाभ उठा सकते हैं।

सफलता की कुंजी स्वचालन है

पहला विकल्प यह है कि जो आप अभी कर रहे हैं, वह करते रहें , यानी हर कॉन्फ़िगरेशन परिवर्तन के साथ EC2s का पुनर्निर्माण करें । बस पूरी तरह से स्वचालित तरीके से।

जैसा कि अब आप AMI के माध्यम से कॉन्फ़िगरेशन अपडेट कर रहे हैं, आप इसे एक कदम आगे ले जाते हैं और एक पाइपलाइन बनाते हैं , जो कि कुछ रिपॉजिटरी में कॉन्फ़िगरेशन फ़ाइल परिवर्तन पर होगा,:

  1. स्वचालित रूप से एक नया एएमआई बनाएं - जो पैकर करने के लिए सबसे लोकप्रिय उपकरणों में से एक है
  2. स्वचालित रूप से अपने Nginx बेड़े का पुनर्निर्माण करें - आपके पास पहले से ही एक आवेदन लोड Balancer के साथ Auto-Scaling Group में सभी Nginx सर्वर होने चाहिए । यदि आपको ऐसा नहीं करना चाहिए , तो यह ASG लॉन्च कॉन्फ़िगरेशन को अपडेट करने और नए AMI से फिर से निर्मित होने के उदाहरणों की प्रतीक्षा करने के रूप में अपडेट को सरल बना देगा ।

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

  • AWS इलास्टिक बीनस्टॉक जोआंतरिक रूप से शेफ का उपयोग करता हैऔर आप अपने Nginx अपडेट को इस तरह से स्क्रिप्ट कर सकते हैं।
  • AWS कोड तैनात करता है जो एक पूरी तरह से स्क्रिप्ट योग्य परिनियोजन उपकरण है जो AWS कोड सूट के अन्य भागों के साथ अच्छी तरह से एकीकृत होता है:
    • कोड कमेट जहाँ आप अपनी Nginx विन्यास फाइल को Git में रख सकते हैं।
    • कोड पाइपलाइन, जो कि स्वचालित रूप से तैनाती को ट्रिगर कर सकती है जब भी कोई कॉन्फ़िगरेशन फ़ाइल कोड कमिट में अपडेट की जाती है।
  • अन्सिबल या कठपुतली जो कि गैर-एडब्ल्यूएस टूल लोकप्रिय हैं जो आपको सभी सर्वरों को उसी तरह कॉन्फ़िगर रखने में मदद कर सकते हैं।

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


AWS पर परिनियोजन विकल्पों का एक शानदार व्हाइटपर अवलोकन है जो आपको एक अच्छा अवलोकन देगा।

मुझे आशा है कि वह मदद करेंगे :)


Ansible या कठपुतली का एक विकल्प नमक है, जो बड़े पैमाने पर तैनाती के लिए एक मास्टर / मिनियन-प्रकार के सेटअप और तरह-तरह के अनुकूलित के लिए डिज़ाइन किया गया है।
आराहो

5

ईएफएस पर अपने कॉन्फ़िगरेशन को स्टोर करें, और उस स्थान पर ईएफएस को माउंट करें जो नग्नेक्स कॉन्फ़िगरेशन में अपेक्षित हैं। वैकल्पिक रूप से उन्हें अमेज़ॅन एस 3 पर रखें और कभी-कभी एक सिंक चलाएं, या s3fs का उपयोग करें (उत्पादन के उपयोग के लिए पर्याप्त नहीं हो सकता है)।

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

एक अन्य विकल्प सिर्फ एक बुनियादी स्वचालन उपकरण का उपयोग करके अपने सर्वर पर नए कॉन्फ़िगरेशन को धकेलना है, जैसे AWS कोड परिनियोजित।

ऊपर दिए गए पूरी तरह से स्वचालित विकल्प तकनीकी रूप से बेहतर और क्लीनर हैं, लेकिन अगर आप शायद ही कभी कॉन्फ़िगरेशन बदलते हैं और एक आसान समाधान चाहते हैं तो यह मदद कर सकता है।



1

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


अपरिवर्तनीय अवसंरचना का एक लाभ यह है कि आप जानते हैं कि आपके पास कोई "पालतू" सर्वर नहीं है जो नाजुक हैं और इसे बनाए रखा जाना चाहिए। यह आपको विश्वास दिलाता है कि आप समस्या के बिना ठेस / डीआर / परीक्षण में अधिक सर्वर बना सकते हैं।
टिम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.