পুতুল: কনফিগারেশন ফাইলটি সংশোধন করার পরে জোর করে পরিষেবা পুনরায় চালু করুন


21

আমি কীভাবে নিশ্চিত করতে পারি যে কনফিগারেশন ফাইলের নতুন সংস্করণ যদি পপেটের মাধ্যমে মাস্টার সংগ্রহস্থল থেকে ডাউনলোড করে পরিচালিত সার্ভারগুলির মধ্যে একটিতে প্রাসঙ্গিক পরিষেবা পুনরায় চালু করা হয় arted

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

অনেক ধন্যবাদ!

উত্তর:


23

অবহিত করার একটি বিকল্প হ'ল সাবস্ক্রাইব করুন:

file { "/etc/sshd_config":
    source => "....",
}

service { sshd:
    ensure => running,
    subscribe => File["/etc/sshd_config"],
}

পার্থক্যটি হচ্ছে সম্পর্কের অন্য প্রান্ত থেকে বর্ণিত। উদাহরণস্বরূপ, আপনি অ্যাপাচি /etc/apache/httpd.conf এ সাবস্ক্রাইব করতে পারেন, তবে আপনি একটি vhost ফাইল নোটিফাই অ্যাপাচি তৈরি করতে চাইবেন, কারণ আপনার অ্যাপাচি ক্লাসটি আপনার প্রতিটি ভোস্ট সম্পর্কে জানতে পারে না।

অনুরূপ দ্বৈত-সমাপ্ত পরিস্থিতি প্রয়োজন এবং তার আগে প্রযোজ্য। এটি এমন একটি বিষয় যা নির্দিষ্ট পরিস্থিতিতে আরও বোধগম্য হয়।

চ্যাড যেমন উল্লেখ করেছেন, আপনি যদি পুতুল ক্রমাগত আপনার পরিষেবা শুরু করার চেষ্টা করছেন, তবে আপনাকে একটি প্যাটার্ন প্যারামিটার যুক্ত করতে হবে যা প্রক্রিয়াগুলির তালিকার বিপরীতে প্রয়োগ করার জন্য একটি রেজেক্স। ডিফল্টরূপে পুতুল একটি স্টপ করবে এবং একটি পরিষেবা পুনরায় চালু করতে শুরু করবে। যদি আপনি "hasrestart => সত্য" যোগ করেন তবে পরিষেবাটি পুনঃসূচনা করতে এটি "পুনঃসূচনা" প্যারামিটারে নির্দিষ্ট কমান্ডটি ব্যবহার করবে।


22

মনে হচ্ছে আমি কিছু পেয়েছি:

file { "/etc/sshd_config":
    source => "....",
    notify => Service[sshd]
}

service { sshd:
    ensure => running
}

আমরা কীভাবে কাজ করব তা দেখব। যাইহোক এই বিষয়ে আপনার মতামত স্বাগত।


1
হ্যাঁ। আপনি "Metaparameters" (অধীনে পুতুল প্রকার উল্লেখ ইন বিশদ জানতে পারেন reductivelabs.com/trac/puppet/wiki/TypeReference#metaparameters )
চাদ Huneycutt

1
ওহ, এবং আপনার ওএসের উপর নির্ভর করে আপনাকে হ্যাসস্ট্যাটাস, হ্যাসারস্টার্ট এবং / অথবা পরিষেবা ধরণের প্যাটার্নগুলির সাথে খেলতে হতে পারে with
চাদ হুনাইকুট

2

(আমি জানি এটি একটি অতি পুরনো প্রশ্ন, তবে কেবল ভেবেছিলাম আমি এটি করতে আমার আরও দুটি সহজ পদ্ধতিতে (আমার মতে) রাখব)

তীর স্বরলিপি পাশাপাশি ব্যবহার করতে নির্দ্বিধায়:

file { "/etc/sshd_config":
  source => "....",
} ~>
service { sshd:
  ensure => running
}

অথবা

File['/etc/sshd_config'] ~> Service['sshd']

আপনার প্রথম উদাহরণে আপনাকে বিজ্ঞপ্তি বিকল্পের প্রয়োজন নেই যদি আপনি তীরটি ব্যবহার করেন
c4f4t0r

উফ। আমি কেবল অনুলিপি করেছি এবং এটি নিতে ভুলে গেছি।
ইথান ব্রুউয়ার 21

1

এটি সোলারিস 10 এর জন্য কাজ করে :)

class sun_cron_root {
    file { "/var/spool/cron/crontabs/root" :
            source => "puppet:///files/cron/sun/sun_cron_root"
            }

    service {
            "cron":
            provider => "smf",
            ensure => running,
            enable => true,
            hasrestart => true,
            subscribe => File["/var/spool/cron/crontabs/root"]
            }

}

0

একাধিক সমতুল্য স্বরলিপি রয়েছে:

অবহিত করুন :

file { '/etc/sshd_config':
    notify => Service[sshd],
}

service { sshd:
    ensure => running
}

সাবস্ক্রাইব করুন :

file { '/etc/sshd_config':
   ...
}

service { sshd:
    ensure => running,
    subscribe => File['/etc/sshd_config'],
}

তীর স্বরলিপি :

File['/etc/sshd_config'] ~> Service['sshd']

শৃঙ্খলা ঘোষণা

file { '/etc/sshd_config':
   ...
}
~> service { sshd:
    ensure => running,
}

আপনি যদি এর reloadপরিবর্তে ট্রিগার করতে চান তবে restartপরিষেবা ঘোষণাটি সামঞ্জস্য করুন:

service { sshd:
    ensure => running,
    restart => 'pkill -HUP sshd', # if service support such reload
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.