Uso puppet para administrar servidores Linux y varios servicios. Funciona bien, excepto por el servicio de títeres en sí.
Mi clase de títeres es así:
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"]
}
}
}
Cuando se aplica un cambio en /etc/puppet/puppet.conf, Puppet se da cuenta de que necesita reiniciar el servicio Puppet y, por lo tanto, se bloquea:
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
¿Sabes cómo podría actualizar puppet.conf correctamente con puppet?
Una solución es no ejecutar Puppet como demonio, sino invocarlo desde cron. Esto es algo que mucha gente prefiere porque para ellos, el demonio consume mucha memoria.
fuente