Wie kann ich puppet.conf mit Puppet verwalten?

11

Ich benutze Puppet, um Linux-Server und verschiedene Dienste zu verwalten. Es funktioniert gut, bis auf den Puppendienst .

Meine Puppenklasse ist wie folgt:

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

}}

Wenn eine Änderung auf /etc/puppet/puppet.conf angewendet wird, stellt Puppet fest, dass der Puppendienst neu gestartet werden muss, und stürzt daher selbst ab:

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

Wissen Sie, wie ich Puppet.conf mit Puppet richtig aktualisieren kann?

Coren
quelle

Antworten:

10

Der Puppet-Daemon bemerkt automatisch Änderungen an der Datei puppet.conf, ohne dass ein Neustart erforderlich ist. Entfernen Sie einfach die subscribe => File["/etc/puppet/puppet.conf"]aus service { "puppet" ... }und alles wird noch funktionieren.

Puppe kann auch nicht wirklich ensure => runningfür sich. Die Verwendung von Mutal Restart mit einer Puppe, die sicherstellt, dass Cron läuft, und einem Cronjob, der sicherstellt, dass die Puppe läuft, funktioniert jedoch.

freiheit
quelle
Ich werde am Montag prüfen, ob es funktioniert, aber es scheint mir sehr gut zu sein. Vielen Dank für den Hinweis zum gegenseitigen Neustart.
Coren
1

Eine Lösung besteht darin, Puppet nicht als Daemon auszuführen, sondern von Cron aus aufzurufen. Dies ist etwas, das viele Leute bevorzugen, weil der Dämon für sie viel Speicher verbraucht.

Nicht jetzt
quelle