मुझे अपने लिनक्स सर्वर को कितनी बार अपडेट करना चाहिए?


56

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

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

जवाबों:


34

मैं apt-get update -qq चलाता हूं; apt-get उन्नयन -duyq दैनिक। यह अपडेट की जांच करेगा, लेकिन उन्हें स्वचालित रूप से नहीं करेगा।

जब मैं देख रहा हूं तब मैं मैन्युअल रूप से अपग्रेड को चला सकता हूं, और कुछ भी सही कर सकता हूं जो गलत हो सकता है।

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

मैं हमेशा पहले कम महत्वपूर्ण प्रणालियों को अपग्रेड करता हूं। मेरे पास एक "रोलबैक योजना" भी है अगर मैं सिस्टम को ठीक नहीं कर सकता। (चूंकि हमारे अधिकांश सर्वर आभासी हैं, इसलिए इस रोलबैक योजना में आमतौर पर उन्नयन से पहले एक स्नैपशॉट लेना शामिल है जिसे मैं आवश्यक होने पर वापस कर सकता हूं)

कहा जा रहा है, मुझे लगता है कि पिछले 4 वर्षों में एक उन्नयन ने केवल एक या दो बार कुछ तोड़ा है, और यह एक उच्च अनुकूलित प्रणाली पर था - इसलिए आपको TOO पागल नहीं होना चाहिए :)


4
मैं हर 30 दिनों में प्रत्येक सर्वर को छूने के लिए बहुत मेहनत करता हूं। मेरे पास इस बिंदु पर 80+ सर्वर हैं। मैं उन्हें कार्यात्मक समूह द्वारा या ऑपरेटिंग सिस्टम द्वारा बैचों में करता हूं।
थॉमस डेंटन

2
हमारे पास एक क्रोन स्क्रिप्ट है जो हमारे SLES / OpenSuSE बक्से के लिए रात में बराबर चलती है; जब यह पता चलता है कि इसे पैकेज की आवश्यकता है, तो यह हमारी मुसीबत टिकट प्रणाली में सिस्टम प्रशासन कतार में एक टिकट जमा करता है। (यह एक फ़ाइल में / tmp से पहले इसे
किसके

4
डेबियन के पास दो पैकेज हैं, एन्टीट्रॉन और क्रोन-एप, जो एक समान काम करते हैं और यदि कोई अपडेट उपलब्ध है तो आपको ईमेल करते हैं। आईएमई, एन्टीट्रॉन में चेंजलॉग को ईमेल करके किनारे होते हैं ताकि आप देख सकें कि क्या बदल गया है।
डेविड पशले


6

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

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

डेबियन आमतौर पर एक बहुत ही स्थिर ओएस है, न कि आपको अत्यधिक टूट-फूट से संबंधित होना चाहिए, लेकिन हमेशा यह पढ़ें कि अपडेट होने से पहले क्या अपडेट होने वाला है और अजीब लगने वाली किसी भी चीज पर नजर रखें। मैं अपने / etc / dir पर VCS का उपयोग करता हूं ताकि यह सुनिश्चित हो सके कि कोई भी विन्यास फ़ाइल परिवर्तन 'git diff' कमांड के साथ देखा जा सकता है।


3

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

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

यदि आप एक सिस्टम एडमिनिस्ट्रेटर हैं, तो आपको Secunia जैसी साइटों से RSS फीड्स खींचनी चाहिए, जिससे आपको पता चल सके कि आपके डिस्ट्रो कुछ पैच को पुश करने जा रहे हैं या नहीं।

कभी मत करो, कभी बस आँख बंद करके अपग्रेड / अपडेट करो। दुर्भाग्य से, यह जानने का कार्य कि आप पर क्या टूटी हुई है, न कि आपके डिस्ट्रो पैकेज मैनेजर, खासकर यदि आपके सिस्टम प्रोग्रामर का समर्थन करते हैं।


2

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

यदि आपके पास केवल दो सर्वर हैं तो प्रक्रिया बहुत सरल होनी चाहिए। हालांकि मुझे नहीं लगता कि "एप-गेट अपडेट / अपग्रेड" आपका सबसे अच्छा दांव है।

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

चूंकि आपके पास एक परीक्षण सर्वर है, जाहिर है, उन्हें लागू करने से पहले हमेशा अद्यतन का परीक्षण करें।


2

मैनुअल अपडेट सबसे अच्छा है जैसा कि यहां बताया गया है कि आप देख सकते हैं कि क्या हो रहा है। हालाँकि, सर्वर की बहुत बड़ी संख्या के लिए जो अव्यावहारिक हो सकता है। ड्राई रन एक मानक अभ्यास है, वास्तव में, अधिकांश पैकेज प्रबंधक आगे बढ़ने से पहले आपसे पूछेंगे।

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

सभी अपडेट गैर-विघटनकारी नहीं हैं। आप इसके लिए बाहर देखना चाहते हैं। कुछ सेवाओं को डाउन-टाइम तक ले जाएंगे।

एक आदर्श सेटअप में आपके पास निम्नलिखित हो सकते हैं:

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

इनमें से कुछ छोटे सेटअपों के लिए अलग-अलग डिग्री पर ओवरकिल हो सकते हैं, लेकिन इसे ध्यान में रखा जाना चाहिए।

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

यद्यपि यह मामूली रूप से दुर्लभ है, वे कभी-कभी गलतियां करते हैं और मामूली पैकेज संस्करणों के बीच संगतता को तोड़ते हैं।


1

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


1

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


1

क्रोन-एप के समान लाइनों के साथ आपको अनअटेंडेड-अपग्रेड पैकेज http://packages.debian.org/lenny/unattended-upgrades पर एक नज़र डालनी चाहिए ।

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

आधिकारिक उबंटू सर्वर गाइड में यथोचित-अपग्रेड पैकेज के उपयोग को कवर करने वाला एक विस्तृत अनुभाग है। https://help.ubuntu.com/9.04/serverguide/C/automatic-updates.html

नोट: अपने स्तर के आधार पर सावधानी / व्यामोह के आधार पर आप पहले टेस्ट सर्वर के एक समूह में एक रोलिंग अपग्रेड कर सकते हैं, फिर अगर कोई समस्या नहीं है, तो अपने उत्पादन बक्से को अपडेट करने की अनुमति दें, हालांकि मैं व्यक्तिगत रूप से सुरक्षा अद्यतन के साथ किसी भी परेशानी में नहीं आया हूं अब तक का कहर (लकड़ी पर दस्तक) ...

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


1

मैं व्यक्तिगत रूप से स्वचालित अपडेट बंद कर देता हूं और नियमित रूप से अपने वातावरण में सर्वरों पर किसी भी प्रकार के पैकेज को अपडेट करने का प्रदर्शन नहीं करता, जब तक कि: (ए) मेरे सिस्टम के पैकेजों में से एक के लिए एक महत्वपूर्ण सीईआरटी सलाहकार नहीं है; (बी) मुझे विशिष्ट कारणों से व्यक्तिगत पैकेजों को अपग्रेड करने की आवश्यकता है; (c) OS या संकुल अंत-चक्र तक पहुँच रहे हैं, उन्हें किसी भी अधिक समर्थन नहीं दिया जाएगा और हमें समर्थन जारी रखने की आवश्यकता है। मेरा तर्क यह है कि यह जानने के बिना अपग्रेड करना कि क्या बदला जा रहा है या क्यों कुछ टूटने के लिए बहुत ज्यादा जगह है। मैं 14 साल से इस तरह की चीजें कर रहा हूं और यह अच्छी तरह से काम करती है।


0

आपके द्वारा बताए गए सामान के अलावा आपको अपडेट के बारे में सचेत करने के लिए किसी तरह के मॉनिटरिंग टूल (नगिओस या जो भी आपकी नाव तैरती है) का उपयोग करना चाहिए।

जहाँ तक कितनी बार जाता है: जैसे ही कोई अपडेट उपलब्ध होता है!

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