¿Cómo puedo administrar puppet.conf con Puppet?


11

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?

Respuestas:


10

Puppet daemon notará automáticamente los cambios en el archivo puppet.conf sin necesidad de reiniciar. Simplemente quite la subscribe => File["/etc/puppet/puppet.conf"]de service { "puppet" ... }y todo seguirá funcionando.

Puppet tampoco puede ensure => runningpor sí mismo. Sin embargo, el uso de algo como el reinicio mutal con la marioneta asegura que cron se está ejecutando y un trabajo cron que asegura que la marioneta esté funcionando funcionará.


Comprobaré si funciona el lunes, pero me parece muy bueno. Gracias por el puntero sobre el reinicio mutuo.
Coren

1

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.