Як я можу керувати puppet.conf за допомогою лялечки?


11

Я використовую маріонетку для управління Linux-серверами та різними сервісами. Це добре працює, крім самої лялькової служби.

Мій ляльковий клас такий:

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"]
  }
}

}

Коли зміна застосована на /etc/puppet/puppet.conf, лялечка помічає, що їй потрібно перезапустити службу ляльок і так, зламайте себе:

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

Чи знаєте ви, як я міг правильно оновити puppet.conf з лялькою?

Відповіді:


10

Ляльковий демон автоматично помітить зміни у файлі puppet.conf, не потребуючи перезавантаження. Просто вийміть subscribe => File["/etc/puppet/puppet.conf"]з service { "puppet" ... }і все буде працювати.

Лялька теж не може ensure => runningдля себе. Однак, використовуючи щось на кшталт Мутального перезавантаження з маріонетковим забезпеченням, що крон працює, і робота, що забезпечує маріонетку, буде працювати.


Я перевірю, чи працює він у понеділок, але мені це здається дуже гарним. Дякуємо за вказівник про взаємний перезапуск.
Корен

1

Одне рішення - не запускати маріонетку як демон, а викликати її з крона. Це те, що віддають перевагу багатьом людям, тому що для них демон витрачає багато пам’яті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.