পুতুল দ্বারা নিয়ন্ত্রিত কোনও ফাইল যখন ইয়াম দ্বারা পরিবর্তন করা হবে তখন অবহিত


13

পুতুল দ্বারা নিয়ন্ত্রিত কোনও ফাইলযুক্ত প্যাকেজটি সেই ফাইলটি পরিবর্তন করতে চলেছে কি কনসোলে কোনও বিজ্ঞপ্তি পাওয়া সম্ভব? অর্থ, ইয়াম আপডেট করার সময় ইয়াম, কাস্টম সতর্কতা ইনজেকশন করা সম্ভব?

উত্তর:


22

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

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

    [root@camel ~]# yum update pam
    Loaded plugins: puppet, security
    Skipping security plugin, no data
    Setting up Update Process
    Resolving Dependencies
    Skipping security plugin, no data
    --> Running transaction check
    ---> Package pam.i386 0:0.99.6.2-12.el5 set to be updated
    ---> Package pam.x86_64 0:0.99.6.2-12.el5 set to be updated
    --> Finished Dependency Resolution

    Dependencies Resolved

    ===============================================================================================================================================================
     Package                           Arch                                 Version                                       Repository                          Size
    ===============================================================================================================================================================
    Updating:
     pam                               i386                                 0.99.6.2-12.el5                               base                               983 k
     pam                               x86_64                               0.99.6.2-12.el5                               base                               982 k

    Transaction Summary
    ===============================================================================================================================================================
    Install       0 Package(s)
    Upgrade       2 Package(s)

    Total download size: 1.9 M
    Is this ok [y/N]: y
    Downloading Packages:
    (1/2): pam-0.99.6.2-12.el5.x86_64.rpm                                                                                                   | 982 kB     00:00
    (2/2): pam-0.99.6.2-12.el5.i386.rpm                                                                                                     | 983 kB     00:00
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------
    Total                                                                                                                          8.7 MB/s | 1.9 MB     00:00
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
    Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/pam.d/system-auth
    Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/access.conf
    Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/limits.conf
    Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/pam.d/system-auth
    Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/access.conf
    Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/limits.conf
    Is this ok [y/N]: n


    Aborting
    [root@camel ~]# yum update pam
    Loaded plugins: puppet, security
    Skipping security plugin, no data
    Setting up Update Process
    Resolving Dependencies
    Skipping security plugin, no data
    --> Running transaction check
    ---> Package pam.i386 0:0.99.6.2-12.el5 set to be updated
    ---> Package pam.x86_64 0:0.99.6.2-12.el5 set to be updated
    --> Finished Dependency Resolution

    Dependencies Resolved

    ===============================================================================================================================================================
     Package                           Arch                                 Version                                       Repository                          Size
    ===============================================================================================================================================================
    Updating:
     pam                               i386                                 0.99.6.2-12.el5                               base                               983 k
     pam                               x86_64                               0.99.6.2-12.el5                               base                               982 k

    Transaction Summary
    ===============================================================================================================================================================
    Install       0 Package(s)
    Upgrade       2 Package(s)

    Total size: 1.9 M
    Is this ok [y/N]: y
    Downloading Packages:
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
    Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/pam.d/system-auth
    Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/access.conf
    Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/limits.conf
    Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/pam.d/system-auth
    Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/access.conf
    Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/limits.conf
    Is this ok [y/N]: y
      Updating       : pam                                                                                                                                     1/4
      Updating       : pam                                                                                                                                     2/4
      Cleanup        : pam                                                                                                                                     3/4
      Cleanup        : pam                                                                                                                                     4/4

    Updated:
      pam.i386 0:0.99.6.2-12.el5                                                    pam.x86_64 0:0.99.6.2-12.el5

    Complete!

প্লাগইনটি নিজেই আমার গিথুব হ্যাকসের সংগ্রহস্থলটিতে পাওয়া যাবে ।


নভেম্বর 8 8 2013 আপডেট:

মন্তব্যে ইঙ্গিত হিসাবে, আমি এখন এটিকে ইউম এবং পুতুলের মধ্যে মিথস্ক্রিয়াটিকে উন্নত করতে আরও বড় প্রকল্পে পরিণত করেছি। আপনি এটি গিটহাবে খুঁজে পাবেন ।


এটি খুবই সুন্দর. আমি নিশ্চিত যে এটি% কনফিগার (নোরপ্লেস) স্টাফগুলিকে উপেক্ষা করতে জানত, যদিও এগুলি আসলে ওভাররাইট করা যাচ্ছে না।
ফ্রেইইট

হ্যাঁ, আমি এটি যুক্ত করার পরিকল্পনা করছি এবং আরও অনেক কিছু। এই প্রশ্নটি আমাকে প্রচুর ধারণা দিয়েছে :)
ডেনিস কার্সেমেকার

কি দারুন ! আপনি এখানে ডিউটির ডাকের বাইরে চলে গেছেন। আমি অভিভূত. এটিই আমার প্রশ্নটি সম্বোধনের চেষ্টা করছিল। আমি শেল স্ক্রিপ্ট ভাবছিলাম তবে এটি আরও ভাল! এখন, আমি আপনার প্লাগইনটি ইউমে ইনস্টল করেছি, তবে এটি পুতুল প্লাগইন লোড করবে না। কোন ধারণা কেন? আমি .pyc ফাইলটি দেখছি, তবে rhnplugin এবং সুরক্ষার মতো কোনও .pyo ফাইল নেই
ব্রায়ান

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

আপনি কি একটি সফ্টওয়্যার লাইসেন্স যুক্ত করতে পারেন?
ব্রায়ান

2

হ্যাঁ, এটি সম্ভব তবে এটি পুতুলের সাথেই সম্পর্কিত নয়।

লিনাক্স সিস্টেমে ইনোটাইফাই মেকানিজমের জন্য সমর্থন রয়েছে যা "ফাইল সিস্টেমের ঘটনাগুলির উপর নজর রাখতে এবং এটি ব্যবহার করতে ব্যবহৃত হতে পারে"। এছাড়া inotify-toolsরয়েছে incronপ্রোগ্রাম ক্রন অনুরূপ কাজ করে কিন্তু এটি ফাইল সিস্টেম ঘটনা ক্ষীণভাবে। আমি মনে করি আপনি কোনও ফাইল পরিবর্তন করার বিষয়ে অবহিত হওয়ার জন্য এটি ব্যবহার করতে পারেন।

(বিটিডাব্লু, আপনি যদি /etc/sysctl.confফাইলটি দেখতে চান তবে আমি এটি করার আগে যাচাই করার পরামর্শ দিই - আপনার লিনাক্সের কি /etc/sysctl.dডিরেক্টরিতে সমর্থন আছে ?)


0

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

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

আমরা এমন একটি সমস্যায় পড়েছি যেখানে একটি কনফিগারেশন ফাইল পুতুল দ্বারা মুছে ফেলা হয়েছিল এবং তারপরে প্যাকেজ আপডেট হওয়ার পরে yum দ্বারা প্রতিস্থাপিত হয়েছিল। পরবর্তী পুতুল রান ফাইলটি অপসারণ না করা পর্যন্ত এটি সমস্যার সৃষ্টি করে। এই পরিস্থিতির জন্য আমাদের কর্মসংস্থানটি ছিল "মুছে ফেলা" ফাইলটির বিষয়বস্তু একটি মন্তব্যে সেট করা যাতে এটি মূলত ফাঁকা থাকে। এটি পরিচালনা করার আরেকটি উপায় হ'ল প্যাকেজ ['a'] -> ফাইল ['/ etc / a'] নিশ্চিত করার চেষ্টা করা যাতে কেবলমাত্র একটি পুতুল চালানো দরকার।


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

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

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


@ 0 এ 0 ডি: ধন্যবাদ, আমি সেই আচরণের কথা বলছিলাম। আমি আশা করি আমার ডেনিস কার্সেমেকার পোস্টে মন্তব্য করার মতো যথেষ্ট প্রতিনিধি ছিল - এটি একটি মার্জিত সমাধানের সূচনা। এছাড়াও, কনফিগারেশন ".d" ডিরেক্টরিগুলি (পিএইচপি-কোডার দ্বারা চিহ্নিত) প্যাকেজ সমর্থন করে তবে পুতুলের মধ্যে প্রয়োগ করা খুব সহজ।
jdPointy
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.