我如何确保如果新版本的configuration文件是通过从主存储库的puppet下载到托pipe服务器的相关服务之一重新启动。
典型的情况 – 假设有新的munin或apacheconfiguration。 傀儡客户发现它,覆盖本地文件…和… – 如何确保服务重新启动/重新加载?
非常感谢!
通知的另一种select是订阅:
file { "/etc/sshd_config": source => "....", } service { sshd: ensure => running, subscribe => File["/etc/sshd_config"], }
不同的是,这种关系是从另一端来描述的。 例如,你可以使apache订阅到/etc/apache/httpd.conf,但是你会让一个vhost文件通知apache,因为你的apache类不会知道你拥有的每一个vhost。
类似的双端情况适用于要求和之前。 这只是在特定情况下更有意义的问题。
正如乍得所提到的,如果你发现傀儡经常试图开始你的服务,那么你需要添加一个模式参数,这是一个正则expression式来应用于进程列表。 默认情况下,puppet将停止并开始重新启动服务。 如果添加“hasrestart => true”,则会使用“restart”参数中指定的命令重新启动服务。
看来我发现了一些东西:
file { "/etc/sshd_config": source => "....", notify => Service[sshd] } service { sshd: ensure => running }
我们将看到如何工作。 无论如何,你对这个问题的想法是受欢迎的。
(我知道这是一个超级古老的问题,但只是想我会把我的两分钱(在我看来)更容易做到这一点)
随意使用箭头符号:
file { "/etc/sshd_config": source => "....", } ~> service { sshd: ensure => running }
要么
File['/etc/sshd_config'] ~> Service['sshd']
这适用于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"] } }