21 votos

marionetas: forzar el reinicio del servicio después de que fue modificado el archivo de configuración

¿Cómo puedo asegurarme de que si la nueva versión del archivo de configuración es descargar a través de marionetas de repositorio principal a uno de servicio correspondientes servidores administrados se reinicia.

un escenario típico - digamos que hay nuevos munin o apache config. marioneta cliente descubre, sobrescribe los archivos locales... y... ¿-Cómo para asegurarse de que el servicio se reinicia / reloaded?

¡Muchas gracias!

23voto

David Pashley Puntos 17011

Una alternativa a notificar es suscribirse:

file { "/etc/sshd_config":
    source => "....",
}

service { sshd:
    ensure => running,
    subscribe => File["/etc/sshd_config"],
}

Con la diferencia de que la relación es descrita desde el otro extremo. Por ejemplo, puede hacer que apache suscribirse a /etc/apache/httpd.conf, pero te gustaría hacer un vhost archivo notificar apache, como servidor apache clase no saber acerca de cada vhost que usted tiene.

Una similar dual-terminó situación se aplica a exigir y antes. Es sólo una cuestión de la que tiene más sentido en la situación particular.

Como Chad se ha mencionado, si usted encuentra títere constantemente tratando de iniciar su servicio, entonces usted necesita para añadir un patrón de parámetro, que es una expresión regular para aplicar en la lista de procesos. Por defecto títere va a hacer un stop y start para reiniciar el servicio. Si agrega "hasrestart => true", entonces deberá utilizar el comando especificado en el "reinicio" de parámetro para reiniciar el servicio.

22voto

Steve Mould Puntos 141

Parece que he encontrado algo:

file { "/etc/sshd_config":
    source => "....",
    notify => Service[sshd]
}

service { sshd:
    ensure => running
}

Vamos a ver cómo funcionará. de todos modos sus pensamientos sobre el tema son bienvenidos.

1voto

Braulio Puntos 876

Esto funciona para Solaris 10 :)

class sun_cron_root {
    file { "/var/spool/cron/crontabs/root" :
            source => "puppet:///files/cron/sun/sun_cron_root"
            }

    service {
            "cron":
            provider => "smf",
            ensure => running,
            enable => true,
            hasrestart => true,
            subscribe => File["/var/spool/cron/crontabs/root"]
            }

}

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: