একটি লিনাক্স উবুন্টু সার্ভারকে আপ টু ডেট রাখার সর্বোত্তম অনুশীলন কোনটি (প্যাকেজগুলি তৈরি করা, ডিস্ট-আপগ্রেড, ওএল্ট রেপো ...)


8

আমরা উবুন্টু 9.10 কারমিক কোয়ালার উপর ভিত্তি করে একটি প্রোডাকশন সার্ভার চালাচ্ছি , কার্নেলটি প্রায় আপ টু ডেট (2.6.38.2-grsec-xxxx-grs-ipv6-64) তবে কার্মিক প্যাকেজ সংগ্রহস্থলটি এখন হাস্যকরভাবে পুরানো, যেমন। এনগিনেক্স 0.7.62 - সত্যই বগি - সর্বশেষ স্থিতিশীল 1.0.x !!

এ ছাড়া কার্মিক সবেমাত্র জীবনের শেষ প্রান্তে পৌঁছেছে।

এই প্রশ্ন: ইউনিক্স প্যাকেজ আপ টু ডেট রাখার জন্য সেরা অনুশীলনগুলি? দেখতে অনুরূপ তবে বাস্তবে প্যাকেজ পরিচালকদের সম্পর্কে কিছু পরামর্শ অন্তর্ভুক্ত রয়েছে; আমার যা দরকার তা নয়!

সুতরাং যে বিকল্পগুলি আমি দেখছি তা হ'ল:

  1. একটি নতুন মেশিন পান, এটি স্ক্র্যাচ থেকে ইনস্টল করুন, মাইগ্রেট করুন
  2. বিতরণ আপগ্রেড
  3. একটি ভিন্ন সংগ্রহস্থল ব্যবহার করুন ( লঞ্চপ্যাড / পিপিএ / ব্যাকপোর্ট / পিনিং )
  4. আপনার নিজের তৈরি করুন

1. এর অসুবিধাগুলি বেশ সুস্পষ্ট।

যদিও আমি কোনও ডিস্ট-আপগ্রেডের পথটি করার সাহস পাচ্ছি না, কারণ ডাউনটাইম এবং সম্ভাব্য বিপর্যয়মূলক পরিণতিগুলি একটি প্রোডাকশন সার্ভারের জন্য ভবিষ্যদ্বাণী করা অসম্ভব এবং বর্তমানে বেশিরভাগই আমার নিজের প্রয়োজনীয় প্যাকেজগুলি পুনরায় তৈরি করছে। তবে আমি নিশ্চিত আমি কিছু মিস করছি।

উবুন্টু ব্যাকপোর্টগুলি ব্যবহারের ঝুঁকিগুলি (স্থিতিশীলতা / সামঞ্জস্যতা) কী কী তা আমার কাছে সত্যিই পরিষ্কার নয়, অতিরিক্তভাবে 9.10 এর জন্য আর কিছুই দেওয়া হয় না। লঞ্চপ্যাডটি স্বতন্ত্র-বিল্ডগুলি, একই রকম প্রশ্ন - এটি আপনার নিজের সংকলনের চেয়ে আরও ভাল।

বিল্ডিং প্যাকেজগুলি সূক্ষ্ম বলে মনে হচ্ছে তবে: ১. মাঝে মাঝে আমার বিদ্যমান কনফিগারেশন ফাইলগুলিকে পুনরায় ব্যবহার করতে সঠিক। / কনফিগার অপশনগুলি পুনরায় উত্পাদন করতে আমার সমস্যা হয় I আমি নিশ্চিত যে এখন প্রচুর পুরানো এবং সম্ভাব্য উত্স হিসাবে প্রচুর প্যাকেজ এবং নির্ভরতা রয়েছে are বাগের

শেষ পর্যন্ত ... সাম্প্রতিক বিতরণে 'পুরানো' প্যাকেজগুলির কী হবে? আমার ধারণা, এগুলি পুনরায় গড়ে তোলা ছাড়া আর কোন উপায় নেই? ২ এবং ৪ এর সংমিশ্রণটি কি শেষ অবধি সেরা পথ?

এটি করার সর্বোত্তম উপায় কী তা নিয়ে কোনও উদ্দেশ্যমূলক sensক্যমত্য আছে বা আমার কিছু বিকল্প ভাল / সঠিক না হওয়ার কারণগুলি কি?

সত্যিই যদি তা না থাকে তবে আমি মেনে নেব যে অন্তহীন থ্রেড তৈরির আগে প্রশ্নটি বন্ধ হয়ে যায়!


1
আপনি বর্তমানে অভিজ্ঞতার কারণে যে কেবলমাত্র সার্ভারের জন্য এলটিএস সংস্করণ ব্যবহার করা উচিত for আপনার প্রশ্নের উত্তরে, আপনি # 1 বা # 2 না করা পর্যন্ত আপনি # 4 দিয়ে আটকে যাবেন। নির্ভরতা উপলব্ধ না হওয়ায় আরও বেশি সময় কেটে যেতে আমি প্রায় 3 টি ব্যর্থ হতে শুরু করতে দেখতে পাই।
ডিমনোফচোস

প্রকৃতপক্ষে কায়ক জিম, যদিও আমাদের এটি তখনই বের করা উচিত ছিল - তবে যখন সার্ভারের লোড কম ছিল রক্ষণাবেক্ষণ গ্রহণযোগ্য হত তবে আমরা যথেষ্ট এগিয়ে ভাবিনি। পাঠ শিখেছি (আশা করি)।
স্টেফানো

উত্তর:


4

নিজের বিতরণ বজায় রাখা অনেক কাজ। এমনকি যদি আপনি ব্যাকপোর্টগুলি বজায় রাখেন তবে আপনি শীঘ্রই সংশোধন করার জন্য সুরক্ষার সমস্যাগুলি দ্বারা অভিভূত হয়ে যাবেন এবং আপনার সফ্টওয়্যারটি আপডেট করার জন্য নিম্ন স্তরের গ্রন্থাগারগুলি টানতে হবে, যা অন্যান্য জিনিসগুলি ভেঙে ফেলতে পারে (আমি 6 বছর বয়সী ডিস্ট্রোস চালিয়ে সার্ভারগুলি বজায় রাখছি, এটি মজা না).

আপগ্রেড করা সাধারণত একটি ভাল সমাধান। do-release-upgradeভাল তৈরি হয়েছে, এবং আপনার সমস্যাগুলি ছাড়াই আপগ্রেড করতে সক্ষম হওয়া উচিত (বিশেষত যদি আপনি কেবল অফিশিয়াল প্যাকেজ ব্যবহার করেন)।

আমার প্রিয় সমাধানটি হয়ত পুনরায় ইনস্টল করার পথ। আরও সুনির্দিষ্টভাবে, আপনার সার্ভারগুলি একটি কনফিগারেশন ম্যানেজমেন্ট সিস্টেম যেমন পপেট, সিফেনজিন বা শেফ ব্যবহার করে পরিচালনা করা উচিত। যদি আপনার সমস্ত কনফিগারেশন / প্যাকেজ প্রয়োজনগুলি এই জাতীয় সরঞ্জাম ব্যবহার করে নির্দিষ্ট করা হয় এবং আপনার ডেটা পৃথক পার্টিশনে নিরাপদ থাকে, দ্রুত পুনরায় ইনস্টল করা অনেক সহজ। আপনি কেবলমাত্র ডেটা পার্টিশনগুলি মোছা ছাড়াই একটি নতুন বিতরণ ইনস্টল করুন এবং তারপরে আপনার প্যাকেজগুলি / কনফিগারেশনগুলি পুনরায় সেট করতে কনফিগারেশন পরিচালনা সরঞ্জামটি চালান। আমি বিশ্বাস করি এটি করা সবচেয়ে পরিষ্কার উপায়, বিশেষত যদি আপনার পরিচালনা করার জন্য বেশ কয়েকটি সার্ভার থাকে।

আপনি যদি বেসরকারী প্যাকেজ ব্যবহার করছেন তবে আপনি আপগ্রেড / পুনরায় ইনস্টল করার আগে সেগুলি সনাক্ত করতে পারেন। রক্ষণাবেক্ষণ-চেক আপনাকে সেই প্যাকেজগুলি সনাক্ত করতে সহায়তা করতে পারে যা উবুন্টু দ্বারা আনুষ্ঠানিকভাবে রক্ষণাবেক্ষণ করা হয় না:

$ bzr branch lp:ubuntu-maintenance-check
$ cd ubuntu-maintenance-check
$ ./maintenance-check -f n

আপনি যদি পুনরায় ইনস্টল করতে চান তবে আপনি ইনস্টল করা প্যাকেজগুলির তালিকাও এক্সপোর্ট করতে পারেন:

$ dpkg --get-selections > myinstall.txt

এবং আপনার debconf ডাটাবেস:

$ debconf-get-selections > debconf.txt # from the debconf-utils package

একটি নোট হিসাবে, যেহেতু আপনি বর্তমানে কার্মিক ব্যবহার করছেন, তাই লুসিডে আপগ্রেড করা খুব হিংস্র হতে পারে না, যা এলটিএস রিলিজ, মূল সার্ভার প্যাকেজগুলির জন্য 2015 পর্যন্ত এখনও সমর্থিত। ভবিষ্যতের জন্য একটি স্বয়ংক্রিয় স্বয়ংক্রিয় ইনস্টলেশন সেটআপ করার জন্য এটি আপনার যথেষ্ট সময় ব্যয় করে।

আপনি যখন লঞ্চপ্যাড প্যাকেজগুলি সম্পর্কে জিজ্ঞাসা করবেন, আমি মনে করি আপনি পিপিএ বোঝাতে চাইছেন। বিভিন্ন রকমের পিপিএ রয়েছে। কিছু পরীক্ষামূলক, কিছু স্থিতিশীল। কিছু আনুষ্ঠানিক উবুন্টু বিকাশকারী দ্বারা রক্ষণাবেক্ষণ করা হয়, কিছু কিছু মানুষ সঠিকভাবে কীভাবে প্যাকেজ করবেন তা খুব কমই জানেন maintained পিপিএতে যদি প্যাকেজগুলি পাওয়া যায় তবে সাধারণ কোনও নিয়ম নেই বলে সাধারণভাবে বলা শক্ত। এই ক্ষেত্রে সর্বোত্তম ইঙ্গিতটি হতে পারে পিপিএগুলির মালিকদের তাদের প্যাকেজগুলির সম্ভাব্য মানের ধারণা পেতে get


অবশ্যই আমরা পুতুল ও কো সম্পর্কে ভাবি নি। সময়। তবে প্রকৃতপক্ষে আপনি একটি খুব ভাল বিষয় তৈরি করেছেন যে, আমরা যদি পুনরায় ইনস্টল করার পথে যাই, তবে সহজেই প্রতিলিপি স্থাপনের জন্য সঠিকভাবে প্রস্তুত করা ভাল। পুনশ্চ. "বিশেষত যদি আপনি কেবল অফিসিয়াল প্যাকেজ ব্যবহার করেন" অবশ্যই না, দুর্ভাগ্যজনক!
স্টেফানো

তারপরে আপনি যে প্রথম পদক্ষেপটি নিতে চাইতে পারেন তা হ'ল বেসরকারী প্যাকেজগুলি সনাক্ত করা। maintenance-checkআপনাকে এটিতে সহায়তা করতে পারে (আমার সম্পাদনা দেখুন)।
haphink

কনফিড ম্যানেজমেন্ট সিস্টেম এবং রক্ষণাবেক্ষণ পরীক্ষা এবং প্রায় পিপিএ সহ অতিরিক্ত টিপসের জন্য নির্বাচিত উত্তর। আমি কেবল উপলব্ধি করেছিলাম, সর্বশেষতম সংগ্রহস্থলগুলি অনুসন্ধান করার পরে, প্যাকেজগুলি সর্বদা আপ টু ডেট থাকে না, যেমন। এমনকি ১১.০৪-এ এনগিনেক্স সংস্করণ ওল্ড (0.8.54-4) এবং সেগুলি কখনই সেই বিতরণে 1.0.x এ যায় না। এই পরিস্থিতিতে কোন পরামর্শ?
স্টেফানো

1
@ স্টেফানো: উবুন্টু দেবিয়ান হিসাবে একই ধরণের নীতি ব্যবহার করে, এটি হ'ল সফটওয়্যার রিলিজের পরে মূল সংগ্রহস্থলগুলিতে আপগ্রেড হয় না (বৈশিষ্ট্য স্থির হওয়ার পরে সুনির্দিষ্ট হতে পারে)। এটি প্রকৃতপক্ষে এখনও রক্ষণাবেক্ষণ করা রিলিজে সফ্টওয়্যারগুলির পুরানো সংস্করণগুলিতে নিয়ে যেতে পারে (বিশেষত যদি সফ্টওয়্যারটি দ্রুত প্রকাশ হয়)। নতুন সংস্করণগুলি পেতে আপনি ব্যাকপোর্টগুলি ব্যবহার করতে পারেন তবে আপনি সম্ভবত স্থায়িত্ব এবং সুরক্ষা আপডেটগুলি হারাবেন। এটির জন্য কোনও সঠিক সমাধান নেই, যদি না আপনি নিজের ব্যাকপোর্টগুলি বজায় রাখতে ইচ্ছুক হন, যা আমি আগেই বলেছি, বেশ ব্যয়বহুল।
hফিংক

2

যদি সার্ভারটি বিশ্বের কাছে উন্মুক্ত না হয় এবং আপনি আপনার ব্যবহারকারীদের উপর পুরোপুরি বিশ্বাস করেন (সাধারণত এটি কোনও ভাল ধারণা নয়) তবে যদি এটি কাজ করে তবে আপনি এটি ছেড়ে যেতে পারেন।

যদি এটি কোনও উপায়ে বাইরের বিশ্বের সংস্পর্শে আসে, এবং / অথবা আপনি বৈধ ব্যবহারকারীর সাথে এটি একটি অবৈধ উপায়ে খেলার ধারণা উপভোগ করেন তবে আপনার ইনস্টলড সফ্টওয়্যারটিতে অবশ্যই আপনার ঠিকঠাক এবং প্যাচগুলি দরকার।

এই ক্ষেত্রে, আপনার কাছে দুটি বিকল্প রয়েছে:

  1. একটি সমর্থিত বিতরণ চালান, এবং আপনার সফ্টওয়্যার আপডেট করুন, বা

  2. আপনার অসমর্থিত বিতরণে সমস্ত ফিক্স ব্যাকপোর্ট করুন, যা অকপটে বললে তা সম্ভবপর বলে মনে হয় না।

আমি কোনও উবুন্টু ব্যবহারকারী নই, সুতরাং আপনি আপনার বিকল্প 3 এর মাধ্যমে যে প্যাচগুলি পেয়েছেন তার সম্পূর্ণতার বিষয়ে আমি মন্তব্য করতে পারি না, তবে আপনার যদি সন্দেহ থাকে তবে আমি ধরে নেব যে আপনার সম্পূর্ণ কভারেজ থাকবে না।

সবচেয়ে ভাল সমাধানটি হ'ল উবুন্টুর একটি এলটিএস সংস্করণে চলে যাওয়া, যা আপনাকে কিছুক্ষণের জন্য প্রদত্ত প্যাকেজ সংস্করণগুলির জন্য সমর্থন দেবে। সময়ের সাথে সাথে কিছু প্যাকেজ পুরানো হয়ে যাবে তবে আপনার পরিবেশে সুরক্ষা প্যাচ থাকবে এবং এটি স্থিতিশীল থাকবে (প্যাকেজের কোনও সংস্করণ নয়)। আমার অভিজ্ঞতা থেকে, একটি পরিচিত কাজের পরিবেশের স্থায়িত্ব সাধারণত নতুন বৈশিষ্ট্যের চেয়ে মূল্যবান।

দেখে মনে হচ্ছে, আপনার বর্তমান অবস্থানটি রক্ষণাবেক্ষণযোগ্য নয় এবং আপনাকে সরে যেতে হবে। একমাত্র নিরাপদ উপায় হ'ল দ্বিতীয় মেশিন (বা ভার্চুয়াল মেশিন) পাওয়া এবং আপনার পুনরাবৃত্তিযোগ্য সফল প্রক্রিয়া না হওয়া পর্যন্ত মাইগ্রেশন পরীক্ষা করা, তারপরে এটি উত্পাদন মেশিনে প্রয়োগ করুন। আপনি যদি পরীক্ষা-স্থানান্তর করতে আপনার ব্যাকআপগুলি ব্যবহার করেন তবে আপনার ব্যাকআপ পদ্ধতিগুলিও পরীক্ষা করার জন্য আপনার ভাল সুযোগ থাকবে।


ধন্যবাদ @ পাভেল-ব্রোডাকী সার্ভারটি অবশ্যই প্রকাশিত! আমি বৈশিষ্ট্যগুলির তুলনায় স্থিতিশীলতার বিষয়ে আপনার দৃষ্টিভঙ্গিটি বুঝতে পারি .. সমস্যাটি হ'ল প্রায়শই স্থিতিশীলতা মূল সংস্করণের পদক্ষেপ নিয়ে আসে। যেমন। nginx 1.0। * সিরিজটি সর্বশেষতম নেটটিতে অন্তর্ভুক্ত 0.8 সিরিজের তুলনায় আরও স্থিতিশীল। সে সম্পর্কে কোনও পরামর্শ?
স্টেফানো

1
যদি এটি বর্তমানে যথেষ্ট ভাল হয়, তবে "যদি এটি ভাঙা না হয় তবে এটি ঠিক করবেন না" বিধি প্রযোজ্য। তারপরে এটি ব্যবসায়ের গণনা: যুক্ত হওয়া স্থিতিশীলতা আপনাকে নিজের চেয়ে বেশি প্যাকেজগুলির একটি সেট বজায় রাখার জন্য ব্যয় করার চেয়ে বেশি সাশ্রয় করতে চলেছে। যদি এটি স্রেফ এনজিন্স, বা এনগিনেক্স এবং কয়েকটি মুদ্রাগুলি হয়, তবে নিজের দ্বারা সংকলন করা, পরীক্ষা করা এবং মোতায়েন করা এমন কাজ যা কিছু করা যায়। সেক্ষেত্রে যে কোনও ত্রুটিযুক্ত ত্রুটি দ্রুত বন্ধ করার জন্য প্যাকেজগুলির বিকাশ ঘনিষ্ঠভাবে অনুসরণ করা বুদ্ধিমানের কাজ হবে।
পাভে ব্রোডাকির

2

এগিয়ে যাওয়ার একমাত্র আসল উপায় হ'ল একটি বিতরণ আপগ্রেড। আমি আপনাকে এটি সম্পর্কে উদ্বিগ্ন বুঝতে পারি, যেহেতু এখনই আপনি বেশ কয়েকটি প্রকাশনা সামনে রেখে যাবেন (১১.০৪ সবেমাত্র প্রকাশিত হয়েছে)।

আমি এই মেশিনে ড্রাইভগুলির একটি ক্লোন তৈরি করার পরামর্শ দিয়েছি এবং তারপরে ক্লোনগুলি চালানোর জন্য একটি পৃথক কম্পিউটার ব্যবহার করব এবং পরীক্ষার আপগ্রেডের একটি সিরিজ করতে এটি ব্যবহার করব। সম্মুখীন হওয়া সমস্ত সমস্যার নোট তৈরি করুন এবং যতক্ষণ না আপনার সমস্তগুলির জন্য একটি পরিষ্কার পদ্ধতি না থাকে ততক্ষণ পুনরাবৃত্তি করুন। তারপরে এটি আপনার লাইভ সার্ভারে প্রয়োগ করুন।

যদি আপনি কোনও ডাউনটাইম সহ্য করতে না পারেন তবে মাইগ্রেশনই আপনার একমাত্র উপায়। পিনিং এবং ব্যাকপোর্টগুলি ভুলে যান, এটি আপনাকে কেবল সীমিত সময়ের জন্যই বাঁচিয়ে রাখবে। এবং "আপনার নিজের রোল করুন" বিকল্পটি বিবেচনা করার মতোও নয়। শুধু আমার 2 পেনি মূল্য।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.