অনেক সার্ভারের জন্য সিস্টেম আপডেট


11

আমাদের অনেক সার্ভার রয়েছে এবং সেগুলি এখনও আপডেট করতে চাই। আসল উপায় হ'ল যে কোনও স্যাসাডমিন সার্ভার থেকে সার্ভারে গিয়ে একটি তৈরি করে aptitude update && aptitude upgrade- এটি এখনও দুর্দান্ত নয়।

আমি এখন এমন একটি সমাধান খুঁজছি যা এখনও আরও ভাল এবং স্মার্ট। পুতুল কি এই কাজটি করতে পারে? তুমি এটা কিভাবে কর?


হ্যাঁ, পুতুল এটি করতে পারে। সিএসএসএটি স্বল্পমেয়াদেও আপনার সমস্যার সমাধান করবে।
সাইরেক্স

উত্তর:


10

আপনি এই execধরনের ব্যবহার করতে পারেন :

exec { "upgrade_packages":
    command => "apt-get upgrade -q=2",
    path    => "/usr/local/bin/:/bin/:/usr/bin/",
    # path  => [ "/usr/local/bin/", "/bin/" ],  # alternative syntax
}

সত্যি কথা বলতে, আমি নিজে এটি চেষ্টা করি নি, তবে আমি মনে করি আপনাকে কেবল একটি নতুন মডিউল তৈরি করতে হবে যাতে এ জাতীয় নির্বাহ সংজ্ঞা অন্তর্ভুক্ত থাকে।

apt-get upgradeকমান্ড ইন্টারঅ্যাকটিভ। এটিকে নিঃশব্দে চালাতে, আপনি -q=2উপরের মতই বিকল্পটি যুক্ত করতে পারেন ।


খুব ভাল লাগছে! আমি মনে করি এটি চেষ্টা করার জন্য আমি কয়েকটি টেস্টম্যাচিন্স সহ একটি পুতুল ইউজকেস তৈরি করি। অনেক ধন্যবাদ!
ডেনিস উইজনিয়া

3
পুতুল সুপারিশ করার জন্য +1! আপনার জীবনকে
সিসাদমিন

3
মনে রাখবেন যে এই এক্সিকিউটর প্রতিটি পুতুল রান (প্রতি 30 মিনিট) চলবে যা আপনার প্রক্সি এবং / অথবা আপনার আয়নাটি বেশ শক্তভাবে হাতুড়ি দিতে পারে যদি আপনার "প্রচুর সার্ভার" থাকে। ব্যক্তিগতভাবে, আমি উপরের এক্সিকিউট টাইপের জন্য একটি সময়সূচী বাস্তবায়নের পরামর্শ দেব, উদাহরণস্বরূপ, এটি কেবল রাতে চালিত হয় তা নিশ্চিত করে। যদিও আমার মতে, পুতুলকে বোঝানো হয়েছে সিস্টেমের অবস্থা প্রয়োগ করা, এবং এটির মাধ্যমে মানুষের তদারকি ছাড়াই একটি আপগ্রেড_প্যাকেজ-এর মতো কমান্ড চালানো, কিছুটা ভীতিজনক এবং কিছুটা পুতুলের অপব্যবহার is পুতুল এন্টারপ্রাইজ (বা এটি ওপেন সোর্স সমতুল্য) এর সাথে আসা এমকোলেটিভ সরঞ্জামটি আরও ভাল বিকল্প হতে পারে।
wzzrd

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

@ ওয়াজার্ড: ভাল পয়েন্ট, তবে লাদাদাদাদা যেমন বলেছিলেন তেমন কিছু বাহ্যিক অবস্থা পরীক্ষা করে এটি আরও ভাল করা যায়।
খালেদ

7

আপনার সমস্ত হোস্ট যদি ডেবিয়ান হয় তবে আপনি অচিহ্নিত-আপগ্রেড প্যাকেজটি চেষ্টা করতে পারেন।

http://packages.debian.org/sid/unattended-upgrades

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

সাম্প্রতিককালে আমাদের টিম সমস্ত সার্ভারে কমান্ড চালানোর জন্য এমকোলেক্টিভ সরঞ্জামটি পরীক্ষা করছে, তবে এমকোলেক্টিভ রুবি ব্যবহারের জন্য প্রয়োজনীয় দক্ষতা প্রয়োজন।

[গুলি] গুটো


5

আমি পুতুল, অনুষঙ্গ এবং এমক্লিকটিভ জন্য যাওয়ার পরামর্শ দিচ্ছি।

এম কালেক্টিভ একটি খুব সুন্দর ফ্রেমওয়ার্ক যেখানে আপনি ফিল্টার হিসাবে ফ্যাক্টর ব্যবহার করে কয়েকটি হোস্টের (সমান্তরালে) সিরিজের উপর কমান্ড চালাতে পারেন।

একটি স্থানীয় প্রক্সি / ক্যাশে যুক্ত করুন এবং আপনি সার্ভার পরিচালনার জন্য ভাল সেট থাকবেন।


আমি সম্মত, পুতুল সত্যিকার অর্থে গণ / অর্কেস্ট্রেটেড প্যাকেজ আপডেটের মতো প্রশাসনিক ক্রিয়াকলাপ পরিচালনা করার সেরা সরঞ্জাম নয়।
রোববিট

3

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

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

আপনি স্পষ্টভাবে করব ভালবাসেন লবণ


2

সুতরাং আমার ধারণা অনেকগুলি জিনিস রয়েছে যা একটি ভাল সমাধানে অবদান রাখে:

  • ব্যান্ডউইথ
  • প্রশাসনের সহজতা
  • কিছু স্ক্রু আপ যদি বিশদ লগিং।

ব্যান্ডউইথ : ব্যান্ডউইথকে সংরক্ষণ করার জন্য মূলত দুটি বিকল্প আমার মনে আসে:

  • একটি ডেবিয়ান মিরর সেট আপ করুন এবং আপনার সমস্ত ক্লায়েন্টকে এই আয়নাটি ব্যবহার করতে কনফিগার করুন , আরও তথ্যের জন্য http://www.debian.org/mirror/ দেখুন। (আমি এটি সুপারিশ করব)
  • একটি প্রক্সি স্থাপন (অ্যাপট-ক্যাচার, অ্যাপ্ট-প্রক্সি বা স্কুইড) এবং ক্যাশে বৃদ্ধি করুন যাতে আপনার সমস্ত ক্লায়েন্টরা এই ক্যাশে থেকে লাভ করতে পারে

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

আপনি যদি আপগ্রেডের যুগপততা সম্পর্কে উদ্বেগ প্রকাশ করেন তবে আপনি আপনার আদেশগুলি দিয়ে সময় নির্ধারণ করতে পারেন at

লগিং : সমান্তরাল শাঁসের সাথে আপনার আউটপুট পুনর্নির্দেশের সম্ভাবনা রয়েছে আমি স্ট্যাডার এবং স্টডআউটকে একত্রিত করব এবং এটি একটি লগফাইলে লিখব।


ব্যান্ডউইদথ: ডেপ রিপোজিটরিগুলির জন্য নির্দিষ্ট ক্যাশে প্রক্সি রয়েছে, এ্যাপ-ক্যাচার বা এপ্ট-প্রক্সি দেখুন।
এস

দুর্দান্ত আমি উত্তরে এটি সংহত করব।
গণিত

এবং সফ্টওয়্যার যেমন এম কালেক্টিভ সমান্তরাল আদেশগুলি কার্যকর করতে এবং আউটপুট / ফলাফলের প্রতিবেদন করতে সক্ষম করে।
ক্লাউডওয়েভারস

1

আমার নিজস্ব সমান্তরাল এসএসএস র‍্যাপার: ক্লাস হ'ল বিভিন্ন সমান্তরাল এবং ক্লাস্টার এসএসএস সরঞ্জামগুলির বিকল্প।

আপনি এটি ভাল পছন্দ করতে পারেন বা আপনি এটি ঘৃণা করতে পারেন। আমি এখানে কেবল তিনটি কারণ উল্লেখ করছি:

  • এটি ইনস্টল এবং ব্যবহার করা অত্যন্ত সহজ: পাইথন 2.5 স্ট্যান্ডার্ড লাইব্রেরির বাইরে কোনও বাহ্যিক নির্ভরতা ছাড়াই একটি একক .পি ফাইল।
  • এটি এর সীমার মধ্যে অত্যন্ত নির্ভরযোগ্য। আমি এটি প্রতিটি কার্য দিবস, প্রায়শই প্রায় প্রতিদিন প্রায় 100 বার এবং প্রায়শই কম্যান্ডে কয়েক হাজার লক্ষ্য থেকে কয়েক হাজার লক্ষ্য সংগ্রহের জন্য ব্যবহার করি। (আমি এটি একবারে 25 হাজারেরও বেশি সার্ভারের লক্ষ্য তালিকায় পরীক্ষা করেছি) tested এটি চালাতে কখনই ব্যর্থ হয় না, সম্পূর্ণ করতে ব্যর্থ হয় বা আমাকে কোনও অনির্দিষ্ট আচরণ দেয়। (পাইথন subprocess.communicate()পদ্ধতির সাথে সম্পর্কিত একমাত্র সীমাবদ্ধতা --- সুতরাং আপনি কেবল স্টেডআউটের প্রায় 64K ক্যাপচার পেতে পারেন এবং উদাহরণস্বরূপ পৃথকভাবে 64K স্টারডার পর্যন্ত পেতে পারেন; এছাড়াও যে কোনও দূরবর্তী প্রক্রিয়া যা এর স্টিডিন থেকে পড়ার চেষ্টা করে তা কেবল স্টল করে দেবে স্থানীয় ssh উপ-পর্সাকে হত্যা না করা অবধি, স্বয়ংক্রিয়ভাবে ক্লাসের সময়সীমা হ্যান্ডলিং দ্বারা)
  • পাইথনে কাস্টম স্ক্রিপ্ট লেখার পক্ষে মডিউল হিসাবে ক্লাস.পি ব্যবহার করা অত্যন্ত সহজ । সুতরাং এরকম কিছু লেখা খুব সহজ:

    
        !#/bin/env python
        import classh
        job = classh.SSHJobMan(cmd, targets)
        job.start()
        while not job.done():
            completed = job.poll()
            for i in completed:
                # do something with the classh.JobRecord object referenced by i
        # done

    # You can optionally do post-processing on the dictionary of JobRecords here # keyed off the target strings (hostnames) </code></pre>

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

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


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

1

এক্সিকিউটিভ ব্যবহার করে উত্তরটি বেশ সহায়ক।

তবে এপট-গেট ম্যানুয়াল অনুসারে এভাবে -Q = 2 ব্যবহার করা ভাল ধারণা নয় (যদিও আমি এটি বহু বছর ধরে সমস্যা ছাড়াই ব্যবহার করেছি)

-q, --quiet
       Quiet; produces output suitable for logging, omitting progress indicators. More q's will produce more quiet up to a maximum of 2. You can also use -q=# to set the
       quiet level, overriding the configuration file. Note that quiet level 2 implies -y, you should never use -qq without a no-action modifier such as -d, --print-uris or
       -s as APT may decided to do something you did not expect. Configuration Item: quiet.

আমি কয়েক বছর ধরে নিজে একটি স্ক্রিপ্ট ব্যবহার করেছি, নিম্নলিখিত উপায়ে প্রস্তুত হয়ে উঠছি:

ssh example.org "apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade && apt-get clean"

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


হ্যাঁ, আমি এটি কয়েকটি সার্ভারের জন্য এটি একটি ভাল উপায় বলে মনে করি। তবে যদি আমার আরও কিছু বিকল্প পাওয়া উচিত (প্রতিটি সার্ভারে কিছু কনফিগার রোলআউট ইত্যাদি) তবে এর পুতুলটি সত্যিকারের আরও ভাল উপায়। আমি এই মুহুর্তে পুতুল এবং এর
সুন্দরটিতে

আমি একমত না। তবে পোস্টারটি এটি সম্পর্কে কী জিজ্ঞাসা করছিল সে উদ্দেশ্যে ওভারকিল হতে পারে।
aseq

1

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


1

আপনি ফ্যাব্রিক ব্যবহার করতে পারেন । ফ্যাব্রিক একটি পাইথন (2.5-2.7) লাইব্রেরি এবং অ্যাপ্লিকেশন মোতায়েন বা সিস্টেম প্রশাসনের কাজে এসএসএইচের ব্যবহারকে সহজ করার জন্য কমান্ড-লাইন সরঞ্জাম।


0

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

অথবা

ক্লাস্টার ssh ব্যবহার করুন

অথবা

PSSH


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

0

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

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

আমি যে নির্দিষ্ট ক্রোন-অ্যাপ্ট কনফিগারেশনটি ব্যবহার করি তা একটি ক্রিয়া ফাইলে সংক্ষিপ্তসারিত: /etc/cron-apt/action.d/5-install

dist-upgrade -y -o APT::Get::Show-Upgraded=true -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security.list -o Dir::Etc::SourceParts="/dev/null"

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

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