उत्पादन उबंटू अपडेट करना डॉस और डॉनट्स को बॉक्स करता है


25

हर बार मैं उत्पादन वेब / डीबी / टूल बॉक्स में लॉगिन करता हूं और विशिष्ट संदेश देखता हूं:

30 पैकेज अपडेट किए जा सकते हैं। 16 अद्यतन सुरक्षा अद्यतन हैं।

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

इस समस्या का दूसरा हिस्सा है, पैच के साथ बने रहना 'एक अच्छी बात' है, लेकिन पैच लगभग दैनिक रूप से जारी किए जाते हैं। अगर हर एक दिन एक नया सुरक्षा पैच उपलब्ध है, तो कितने शेड्यूल किए गए हैं?

मुझे लगता है कि आप अपने अपडेट को कैसे प्रबंधित करते हैं, इस बारे में उत्तरों पर एक थ्रेड बहुत उपयोगी होगा।

जवाबों:


13

उबंटू बनाम विंडोज, आरएचईएल, सेंटो, एसयूएसई, डेबियन, आदि पैचिंग के बारे में कुछ खास नहीं है।

आपके पैच प्रक्रिया को डिज़ाइन करते समय आपके दिमाग की मूल स्थिति यह है कि यह मान लें कि कुछ टूट जाएगा

पैच सेटअप डिज़ाइन करते समय मेरे द्वारा उपयोग किए जाने वाले कुछ मूल दिशानिर्देश हैं:

  • हमेशा अपने नेटवर्क पर आंतरिक रूप से केंद्रीकृत करने के लिए एक स्थानीय प्रणाली का उपयोग करें जहां से पैच स्थापित किए जाते हैं

इसमें WSUS, या <your_os_here>आंतरिक पैच प्रबंधन मशीन के दर्पण का उपयोग करना शामिल हो सकता है । पसंदीदा एक जो केंद्र में क्वेरी कर सकता है और आपको अपने व्यक्तिगत मशीनों पर स्थापित पैच की स्थिति बता सकता है।

  • मशीनों पर - जब संभव हो तो पूर्व-चरण स्थापित करें।

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

  • पैच स्थापित करने के लिए एक आउटेज विंडो प्राप्त करें, आपको रिबूट करना पड़ सकता है, और शायद कुछ टूट जाएगा। यह सुनिश्चित कर लें कि उन सिस्टम के लिए हितधारकों को पता है कि वहाँ पैच तैनात किए जा रहे हैं। "यह" कॉल के लिए काम नहीं करता है के लिए तैयार रहें।

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

  • जितना संभव हो उतना स्वचालित

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

  • हर महीने कई खिड़कियां लगवाएं

यह आपको कुछ सर्वरों को पैच न करने की क्षमता देता है यदि किसी भी कारण से उन्हें "नियुक्त रात" पर पैच नहीं किया जा सकता है। यदि आप उन्हें रात 1 पर नहीं कर सकते हैं, तो उन्हें रात को मुफ्त में रहने की आवश्यकता है। साथ ही आपको सर्वर की संख्या को एक ही समय पर रखने की सुविधा देता है।

सबसे महत्वपूर्ण बात यह है कि पैच के साथ रहो! यदि आप ऐसा नहीं करते हैं तो आप अपने आप को बहुत बड़ी 10+ घंटे की पैच विंडो कर सकते हैं, बस उस बिंदु पर वापस आने के लिए जहां आप पकड़े गए हैं। और भी अधिक बिंदुओं का परिचय जहाँ चीजें गलत हो सकती हैं, और यह पता लगाना कि किस पैच के कारण और कितना कठिन है।


इस समस्या का दूसरा हिस्सा है, पैच के साथ बने रहना 'एक अच्छी बात' है, लेकिन पैच लगभग दैनिक रूप से जारी किए जाते हैं। अगर हर एक दिन एक नया सुरक्षा पैच उपलब्ध है, तो कितने शेड्यूल किए गए हैं?

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

जहाँ तक आपको एक महीने में कितनी खिड़कियों की आवश्यकता है? जो आपके पर्यावरण पर निर्भर करता है। आपके पास कितने सर्वर हैं? आपके सेवर के लिए आवश्यक समय क्या है?

छोटे वातावरण जो 9x5 हैं, संभवतः एक महीने में एक पैच विंडो के साथ दूर हो सकते हैं। बड़ी 24x7 दुकानों को दो की आवश्यकता हो सकती है। बहुत बड़े 24x7x365 को हर हफ्ते एक रोलिंग विंडो की आवश्यकता हो सकती है ताकि हर सप्ताह एक अलग सर्वर सेट किया जा सके।

एक आवृत्ति प्राप्त करें जो आपके और आपके पर्यावरण के लिए काम करती है।

एक बात का ध्यान रखें कि 100% तारीख तक पहुंचना एक असंभव लक्ष्य है - अपने सुरक्षा विभाग को अन्यथा न बताएं। अपना सर्वश्रेष्ठ करो, बहुत पीछे मत रहो।


आप कहते हैं कि इंस्टॉलेशन प्रारंभ को स्वचालित करें, हालांकि यह आउटेज विंडो प्राप्त करने के लिए संदेश के मूल आधार का खंडन करता है। क्या आप अपने उत्तर के 'इंस्टॉलेशन स्टार्ट को स्वचालित' कर सकते हैं?
कल्पनाशील

जब आपका आउटेज शुरू होता है तो आप इंस्टॉलेशन की शुरुआत को स्वचालित कर देते हैं - इंस्टॉल शुरू करने के लिए प्रत्येक बॉक्स में लॉग इन करने की आवश्यकता को रोकते हुए ... मैं कुछ बेहतर शब्दों को सोचने की कोशिश
करूंगा

6

करने के लिए काम:

  1. एक बैकअप लें
  2. सुनिश्चित करें कि यह एक आरामदायक बैकअप है (हालाँकि, ये दोनों सामान्य बिंदु हैं)
  3. अपग्रेड करते समय प्रोडक्शन बॉक्स से दूर यातायात को निर्देशित करने का प्रयास करें।
  4. केवीएम, सीरियल कंसोल, लोकल एक्सेस या रिमोट-हैंड्स के गलत होने की स्थिति में आउट-ऑफ-द-बैंड एक्सेस पद्धति का प्रयास करें।
  5. एक सर्वर पर परीक्षण करें, फिर सुनिश्चित करें कि अधिक सर्वर पर अपडेट को लागू करने से पहले, सब कुछ काम करता है
  6. कठपुतली का उपयोग करें यदि आप यह सुनिश्चित कर सकते हैं कि संस्करण संख्याएं कई सर्वरों में समान हैं। (आप इसे बल के उन्नयन के लिए भी उपयोग कर सकते हैं)
  7. एक परीक्षण सर्वर पर, नए (अद्यतन स्थापित) के खिलाफ कॉन्फ़िगर फ़ाइलों के संस्करणों को अलग करें, और सुनिश्चित करें कि कुछ भी गंभीरता से चीजों को तोड़ने नहीं जा रहा है। मुझे लगता है कि वर्तमान में स्थापित संस्करणों से अलग नए संस्करण स्थापित करने से पहले dpkg को याद करना चाहिए।

बचने के लिए चीजें:

  1. दिन के मध्य में अपडेट करना, या सोमवार सुबह 09:00, या शुक्रवार दोपहर 5 बजे! (धन्यवाद @ 3influence!)
  2. MySQL को वास्तव में बड़े डेटाबेस सर्वर पर अपग्रेड करना (पुनरारंभ करने में लंबा समय लग सकता है)
  3. अपने सभी सर्वरों को एक ही बार में करना (विशेषकर गुठली)
  4. ऐसा कुछ भी करना जो बदल सकता है / etc / नेटवर्क (क्योंकि आप कनेक्टिविटी खो सकते हैं)
  5. स्वचालित अद्यतन जो सब कुछ जांचने के लिए आपके बिना ऊपर कर सकता है वह ठीक है।

4
आप भूल गए ... कभी भी उन्हें एक दिन के अंत में शुक्रवार को नहीं करें जब तक कि आप अपने सप्ताहांत का मूल्य न दें :)
3dinfluence

4

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


इस बात को ध्यान में रखें कि एक रनिंग सर्विस के अपडेट के लिए उस सर्विस को कुछ बिंदु पर रोकना होगा ताकि आप नया प्राप्त कर सकें। फिर भी, आपको हर 10 मिनट में गुस्सा नहीं आता है :)
gbjbaanb

डेबियन / ubuntu उपयोगिता checkrestartयह निर्धारित करने में बहुत उपयोगी है कि कौन सी प्रक्रियाएं अपडेट की गई हैं लेकिन फिर भी नए कोड प्राप्त करने के लिए इसे रोकने और फिर से शुरू करने की आवश्यकता है।
थोमसट्रेटर

4

हमारी उबंटू मशीनें सभी एलटीएस रिलीज़ चल रही हैं।

हम केवल सभी अपडेट स्वचालित रूप से इंस्टॉल करते हैं - सुनिश्चित करें कि यह "सर्वोत्तम अभ्यास" नहीं है, लेकिन हम एक अपेक्षाकृत छोटी दुकान हैं और हर एक सेवा के लिए परीक्षण / देव / उत्पादन वातावरण नहीं है। LTS अपडेट आम तौर पर काफी अच्छी तरह से परीक्षण और न्यूनतम इनवेसिव वैसे भी होते हैं।

एक नई रिलीज के लिए उन्नयन जाहिर है एक छोटे से अधिक शामिल है।


2

हम ubuntu LTS सिस्टम के लिए निम्नलिखित तरीके से अपडेट करते हैं:

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

हमारे लिए अगला तार्किक कदम इन-मेमोरी सत्र जानकारी को समाप्त करना है ताकि हम ग्राहकों को प्रभावित किए बिना प्रति दिन या यहां तक ​​कि प्रति दिन कई बार बुनियादी ढांचे को फिर से तैयार कर सकें और चरण (2) को खत्म कर सकें।

यह दृष्टिकोण कम-रखरखाव है और रखरखाव खिड़कियों से पूरी तरह से बचा जाता है।


मैंने एक ऐसी कंपनी में काम किया, जो इसी तरह की प्रक्रिया करती थी; हमारी मूल कंपनी में एक "पूर्ण और पेशेवर रूप से विकसित प्रणाली" थी। जब "हार्दिक" भेद्यता की घोषणा की गई थी, तो हमारे पास अगली सुबह तक कई सौ सर्वर थे। मूल कंपनी की "सुरक्षित" प्रक्रियाएं उनके कई सौ सर्वरों को समाप्त करने और एक सप्ताह के दौरान प्रत्येक मशीन को मैन्युअल रूप से पैच करने के लिए आईटी समूह को छोड़कर समाप्त हो गईं। जटिलता सुरक्षा और विश्वसनीयता का दुश्मन है :-)
टॉम हैरिसन जूनियर

0

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

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