কনফিগারেশন পরিচালনার সরঞ্জামগুলি (পুতুল, শেফ) ইনস্টলড প্যাকেজগুলি আপ টু ডেট রাখতে সক্ষম?


28

আপনারা ইতিমধ্যে কনফিগারেশন পরিচালনার সরঞ্জামগুলি চালাচ্ছেন তাদের পক্ষে এটি একটি সাধারণ প্রশ্ন। কনফিগারেশন পরিচালনার সরঞ্জামগুলি যেমন পুতুল বা শেফ কি ইনস্টলড প্যাকেজগুলি আপ টু ডেট রাখার জন্য সঠিক পদ্ধতির?

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

সিস্টেমগুলিকে স্বয়ংক্রিয়ভাবে সুরক্ষা আপডেটগুলি ইনস্টল করতে আমি বর্তমানে "অপ্রচলিত আপগ্রেডগুলি" চালাচ্ছি , তবে এখনও সার্ভারের সাথে সংযোগ স্থাপন করতে হবে এবং aptitude update && aptitude safe-upgradeপ্রায়শই প্রায়শই চালাতে হয়। স্বাভাবিকভাবেই এটি বিরক্তিকর, ক্লান্তিকর এবং তত বেশি সার্ভারের ত্রুটি-প্রবণ হয়ে পড়ে।

পুতুল বা শেফের মতো সরঞ্জামগুলি কি ইনস্টলড প্যাকেজগুলি আপ টু ডেট রাখার সঠিক পদ্ধতির? ম্যানুয়ালি চলমান এড়াতে aptitudeবা 15 সার্ভারের সমতুল্য এড়াতে আপনারা কেউ এই সরঞ্জামগুলি ব্যবহার করেন ? আমি এই প্রশ্নের উত্তরটি হ'ল অবশ্যই "হ্যাঁ, অবশ্যই!"

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


সুন্দর প্রশ্ন, আমি কিছু টিউটোরিয়াল পড়েছি [যা আমি খুঁজে পাই না] পুতুলের সাথে ডেবিয়ানকে টু টু ডেট রাখার কথা উল্লেখ করেছি তবে নিজে নিজে চেষ্টা করে দেখিনি। এটির উত্পাদনে যারা এটি ব্যবহার করছেন তাদের উত্তরগুলি খুঁজে পাওয়া আকর্ষণীয় হবে
pQd

উত্তর:


9

পুতুল (আমি অবশ্যই নিশ্চিত শেফও করি) আপনার অ্যাপটি- গেট / ইয়াম সফ্টওয়্যার রিপোজিটরিগুলির সাথে সম্পর্কযুক্ত । যেহেতু তারা কোন প্যাকেজগুলি উপলব্ধ তা নির্ধারণের ভারী উত্তোলন করে, এর অর্থ ensure => latestকেবল উবুন্টু / সেন্টস / ডেবিয়ান জাতীয় কাজ করে। যতক্ষণ আপনি যথাযথ ফাইলগুলি সেট আপ করবেন ( /etc/apt/sources.listইত্যাদি)।


1
প্রতিটি প্যাকেজ পরিচালিত পুতুল বা অনুরূপ পরিচালনার উত্তরগুলির অর্থ হ'ল আপনাকে পুতুলের প্রতিটি প্যাকেজ ট্র্যাক করতে হবে, এমনকি এটি লিনাক্স লিনাক্স বিতরণ ইনস্টলেশনের অংশ। যেমন সাধনের ব্যবহার unattended-upgradesবা yum-cronকরার আপডেট স্বয়ংক্রিয়রূপে অনেক কম কাজ - শুধু ঐ সরঞ্জাম কনফিগার করার পুতুল / শেফ / Ansible ব্যবহার করুন।
রিচভেল

22

আপনি পুতুল দিয়ে এটি করতে পারেন, আপনি হয়:

ensure => latest,

অথবা

ensure=> "1.0.2",

সর্বশেষ / প্রয়োজনীয় সংস্করণ নির্দিষ্ট করতে। অর্থাত

package { apache2: ensure => "2.0.12-2" }
package { apache2: ensure => latest }

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

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


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

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

2
ensure => latestআপনার সংগ্রহশালার সেটটি যা সরবরাহ করে তার সাথে সর্বদা আপ-টু ডেটের বিষয়টি নিশ্চিত করে তুলবে।
ওম্বল

18

আমি মনে করি এটি সম্ভবত ভুল প্রশ্ন। আপনার অবকাঠামো বজায় রাখতে অবশ্যই পুতুল এবং শেফের মতো কনফিগারেশন পরিচালনার সরঞ্জামগুলি ব্যবহার করে ম্যানুয়ালি এগুলি করার চেষ্টা থেকে এক বিশাল লাফ এগিয়ে forward আপনার প্যাকেজ সংস্করণগুলি আপ টু ডেট এবং সিঙ্কে রাখার বিষয়টি এই সরঞ্জামগুলির কোনওটিই সরাসরি সমাধান করে না। এটিকে যথাযথভাবে স্বয়ংক্রিয় করতে আপনাকে প্যাকেজ সংগ্রহস্থলগুলি নিজের নিয়ন্ত্রণে আনতে হবে।

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

একবার আপনি এই সেট আপ হয়ে গেলে (সাধারণত আপনি কেবল প্রবাহের রেপো থেকে শুরু করার জন্য প্রয়োজনীয় প্যাকেজগুলিই আয়না করতে পারেন) আপনি আপনার পুতুলের "নিশ্চিত => সর্বশেষ" বাক্য গঠনটি ব্যবহার করতে পারেন তা নিশ্চিত করার জন্য যে আপনার সমস্ত মেশিনগুলি রেপোতে আপ টু ডেট থাকবে।

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

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

এই সমস্ত পরামর্শই রুবি রত্ন, পাইথন ডিম এবং অন্যান্য প্যাকেজ সিস্টেমে সমানভাবে প্রযোজ্য যা আপনি ব্যবহার করতে পারেন।

আমি একটি ছোট পুতুল টিউটোরিয়াল লিখেছি যা আপনাকে পুতুলের সাথে দ্রুত উঠতে এবং চালাতে সহায়তা করবে। আপনি প্যাকেট ব্যবহার করে প্যাকেজ সংস্করণগুলিকে নিয়ন্ত্রণে আনার প্রথম পদক্ষেপ হিসাবে আপনার মেশিনগুলিতে একটি কাস্টম রেপো সংজ্ঞা স্থাপন করতে পারেন।


5

তাদের রাখা করতে যতক্ষণ পুতুল / পাচক বা রাঁধুনি এই কার্যকারিতা সম্ভব দাবীদার, প্রথম, হয় সবকিছু সিস্টেমে আপ-টু-ডেট পারেন কাস্টম ধরনের বা (libc6 মত অন্তর্নিহিত সিস্টেম লাইব্রেরি সহ) প্রত্যেক প্যাকেজ তালিকা সঙ্গে সম্পদ যেমন প্রয়োজন ensure => latest। স্বয়ংক্রিয় প্যাকেজ আপডেটের নির্দিষ্ট ক্ষেত্রে, আপনি cron-aptপ্যাকেজটি সন্ধান করতে পারেন , যা আপনি যা চান তা করে।


অথবা কেবলমাত্র "ইয়াম আপডেট" এর একটি এক্সিকিউটিভ চাকরির বাইরে চলে যা উচ্চ স্প্লে সময়। যেভাবেই হোক আমার জন্য কাজ করে।
সিরেক্স

5

এই প্রশ্নটি পুরান, তবে আমি ভেবেছিলাম যে একটি বিদ্যমান উত্তরটি তখনকার সময়ে অনুপলব্ধ হওয়ায় আমি একটি আপ-টু-ডেটের উত্তর দেব।

আপনি যদি পুতুল বা শেফ ব্যবহার করছেন তবে বহুগুণে অনুসন্ধান করুন। পুতুল পুতুলদের দ্বারা এটি একটি খুব সুন্দর সরঞ্জাম যা আপনাকে সার্ভারের গোষ্ঠীতে কমান্ড প্রেরণ করতে দেয়। http://docs.puppetlabs.com/mcollective/

এটিতে একটি এপটি প্লাগইন রয়েছে, যা যে কোনও সংখ্যক সার্ভারে অ্যাপটি আপডেট করতে ব্যবহার করা যেতে পারে:


4

আমি বুঝতে পারি যে এটি আপনার আসল প্রশ্নের জন্য কিছুটা দেরী, তবে এখানে এটি "কখনই ভাল না হতে পারে" এর চেতনায় রয়েছে।

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

আমার সিফিনিজিন কনফিগারেশন থেকে এখানে একটি প্রতিশ্রুতি স্নিপেট রয়েছে:

    packages:
            "apache2"
                    package_method => "apt",
                    package_policy => "update";

আশাকরি এটা সাহায্য করবে.


2

আমি জোনাথনের সাথে একমত সিফেনিজিন 3 পদ্ধতিটি দুর্দান্ত কারণ আপনি নিম্ন স্তরে পুনরায় সংশোধন না করে প্যাকেজ পরিচালনার সমস্ত দিক নিয়ন্ত্রণ করতে পারেন।


2

আমরা পুতুল + অ্যাপে-ডেটর ব্যবহার করি।


1

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


0

সুরক্ষা আপডেট

সাধারণত আমি মনে করি উবুন্টু / ডেবিয়ান (বা আরএইচইএল / সেন্টোসের জন্য) এর জন্য শক্তিশালী অপ্রচলিত আপগ্রেড প্যাকেজ সেট আপ করার জন্য উপযুক্ত বা অনুরূপ ব্যবহার করা সবচেয়ে সহজ yum-cron। আপনি পুতুল, শেফ বা অন্যান্য সরঞ্জাম ব্যবহার করতে পারেন, তবে আমি এখানে উত্তরযোগ্য নিয়ে আলোচনা করব।

  • unattended-upgrades আপনি যদি পছন্দ করেন তবে একই সাথে সুরক্ষিত আপডেটগুলি করতে ব্যবহার করা যেতে পারে, যা প্রতিদিন উত্তরীয়ের মাধ্যমে কমান্ড চালানোর চেয়ে অনেক সহজ।

  • unattended-upgradesপ্রতিদিন অটো আপডেটের যত্ন নেয় এবং সাধারণত সুরক্ষা আপডেটগুলিতে সীমাবদ্ধ থাকে (স্থিতিশীলতা বাড়াতে)। আপডেটের পরে যদি সার্ভারটির একটি রিবুট দরকার হয় তবে এই সরঞ্জামটি একটি নির্দিষ্ট সময়ে স্বয়ংক্রিয়-রিবুট করতে পারে।

যদি আপনার রিবুটগুলি আরও জটিল হয়, unattended upgradesআপনাকে ইমেল করতে পারে এবং এটি /var/run/reboot-requiredতৈরিও করে , যাতে উপযুক্ত (বা অনুরূপ) উপযুক্ত সময়ে রিবুটগুলি পরিচালনা করতে পারে (যেমন ডাউনটাইম এড়াতে ওয়েব বা ডিবি সার্ভারগুলির একটি গুচ্ছের রিবুটগুলি প্রতিটিটির জন্য অপেক্ষা করে চালিয়ে যাওয়ার আগে একটি নির্দিষ্ট টিসিপি পোর্টে সার্ভার উপলব্ধ হয়ে ওঠে)।

আপনি উবুন্টু / ডেবিয়ান সিস্টেমগুলির জন্য jnv.unattended-upgrades , বা সহজ কিন্তু কার্যকর geerlingguy.sec সুরক্ষার মতো উত্তরযোগ্য ভূমিকা ব্যবহার করতে পারেন , যা আরএইচইএল / সেন্টোস (এবং কঠোর এসএসএইচ কনফিগারেশন) কেও অন্তর্ভুক্ত করে।

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

সাধারণ আপডেট

সুরক্ষা ব্যতীত আপডেটগুলি স্বাভাবিক ক্রমাগত একীকরণ এবং পরীক্ষার প্রক্রিয়াটি অতিক্রম করবে, যাতে জিনিসটি যাতে না ভাঙে।

আমি aptitude safe-upgradeঅতীতে সার্ভারগুলিতে মারাত্মক সমস্যার কারণ দেখেছি তাই এটি স্বয়ংক্রিয়ভাবে চালানো ভাল নয়, তবে সুরক্ষা আপডেটগুলি সাধারণত বেশ নিরাপদ থাকে।

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