Bagaimana saya bisa mengelola puppet.conf dengan Puppet?

11

Saya menggunakan boneka untuk mengelola server linux dan berbagai layanan. Ini bekerja dengan baik, kecuali untuk layanan boneka itu sendiri.

Kelas boneka saya seperti ini:

class puppet {
  file { "/etc/puppet/puppet.conf":
    owner  => 0, group  => 0, mode => 0644,
    content => template("${module_name}/puppet.conf.erb"),
  }

  service { "puppet":
    name       => "puppet",
    ensure     => running,
    enable     => true, hasstatus  => true, hasrestart => true,
    require    => File["/etc/puppet/puppet/conf"]
    subscribe  => File["/etc/puppet/puppet/conf"]
  }
}

}

Ketika perubahan diterapkan pada /etc/puppet/puppet.conf, pemberitahuan boneka yang dibutuhkan untuk memulai kembali layanan boneka dan karenanya, crash sendiri:

Mar 30 17:08:23 XXXX puppet-agent[20172]: (/Stage[main]/Puppet/File[/etc/puppet/puppet.conf]/content) content changed '{md5}eeaf5dfc7d88c8d9c85e6a8cc714d702' to '{md5}ef6ff0e423f4125e24b689980df9f71d'
Mar 30 17:08:23 XXXX puppet-agent[20172]: Caught TERM; calling stop

Apakah Anda tahu bagaimana saya dapat memperbarui puppet.conf dengan benar dengan boneka?

Coren
sumber

Jawaban:

10

Daemon puppet akan secara otomatis melihat perubahan pada file puppet.conf tanpa perlu dihidupkan ulang. Cukup hapus subscribe => File["/etc/puppet/puppet.conf"]dari service { "puppet" ... }dan semuanya akan tetap berfungsi.

Wayang juga tidak bisa ensure => runninguntuk dirinya sendiri. Menggunakan sesuatu seperti Mutal Restart dengan boneka memastikan cron berjalan dan cronjob memastikan boneka berjalan akan berhasil.

freiheit
sumber
Saya akan memeriksa apakah itu berfungsi pada hari Senin, tetapi tampaknya sangat baik bagi saya. Terima kasih atas petunjuk tentang Mutual Restart.
Coren
1

Salah satu solusinya adalah tidak menjalankan boneka sebagai daemon, tetapi memintanya dari cron. Ini adalah sesuatu yang disukai banyak orang karena bagi mereka, daemon menghabiskan banyak memori.

Tidak sekarang
sumber