Wie kann ich puppet.conf mit Puppet verwalten?

Wie kann ich puppet.conf mit Puppet verwalten?

Ich verwende Puppet zur Verwaltung von Linux-Servern und verschiedenen Diensten. Es funktioniert gut, mit Ausnahme derMarionetteDienst selbst.

Meine Puppet-Klasse sieht so aus:

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 an /etc/puppet/puppet.conf vorgenommen wird, bemerkt Puppet, dass es den Puppet-Dienst neu starten muss und stürzt daher 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 korrekt aktualisieren kann?

Antwort1

Der Puppet-Daemon bemerkt Änderungen an der Datei puppet.conf automatisch, ohne dass er neu gestartet werden muss. Entfernen Sie einfach das subscribe => File["/etc/puppet/puppet.conf"]Formular service { "puppet" ... }und alles funktioniert weiterhin.

Puppet kann das auch nicht wirklich ensure => runningfür sich selbst. Mit etwas wie demGegenseitiger NeustartMit Puppet, das sicherstellt, dass Cron ausgeführt wird, und einem Cronjob, der sicherstellt, dass Puppet ausgeführt wird, funktioniert es jedoch.

Antwort2

Eine Lösung besteht darin, Puppet nicht als Daemon auszuführen, sondern es von Cron aus aufzurufen. Viele Leute bevorzugen dies, da der Daemon für sie viel Speicher verbraucht.

verwandte Informationen