Comment gérer puppet.conf avec Puppet?


11

J'utilise des marionnettes pour gérer les serveurs Linux et divers services. Cela fonctionne bien, sauf pour le service de marionnettes lui-même.

Ma classe de marionnettes est comme ça:

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

}

Lorsqu'une modification est appliquée sur /etc/puppet/puppet.conf, puppet remarque qu'il doit redémarrer le service puppet et donc, se bloquer:

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

Savez-vous comment je pourrais mettre à jour puppet.conf correctement avec puppet?

Réponses:


10

Le démon puppet remarquera automatiquement les modifications apportées au fichier puppet.conf sans avoir besoin d'être redémarré. Retirez simplement le subscribe => File["/etc/puppet/puppet.conf"]de service { "puppet" ... }et tout fonctionnera toujours.

La marionnette ne peut pas non plus vraiment ensure => runningpour elle-même. Cependant, utiliser quelque chose comme le redémarrage mutuel avec une marionnette garantissant que cron fonctionne et un cronjob garantissant que la marionnette fonctionne.


Je vais vérifier si ça marche lundi, mais ça me semble très bien. Merci pour le pointeur sur le redémarrage mutuel.
Coren

1

Une solution consiste à ne pas exécuter marionnette en tant que démon, mais à l'invoquer depuis cron. C'est quelque chose que beaucoup de gens préfèrent car pour eux, le démon consomme beaucoup de mémoire.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.