puppet:修改配置文件后强制重启服务

pQd*_*pQd 21 configuration-management puppet

如果通过 puppet 从主存储库将新版本的配置文件下载到托管服务器之一,我如何确保重新启动相关服务。

典型场景 - 假设有新的 munin 或 apache 配置。puppet 客户端发现它,覆盖本地文件......以及...... - 如何确保服务重新启动/重新加载?

多谢!

Dav*_*ley 24

通知的替代方法是订阅:

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

service { sshd:
    ensure => running,
    subscribe => File["/etc/sshd_config"],
}
Run Code Online (Sandbox Code Playgroud)

不同之处在于关系是从另一端描述的。例如,您可能让 apache 订阅 /etc/apache/httpd.conf,但是您会创建一个 vhost 文件来通知 apache,因为您的 apache 类不会知道您拥有的每个 vhost。

类似的双端情况适用于 require 和 before。这只是在特定情况下哪个更有意义的问题。

正如 Chad 所提到的,如果您发现 puppet 不断尝试启动您的服务,那么您需要添加一个模式参数,这是一个应用于进程列表的正则表达式。默认情况下,puppet 会停止并开始重新启动服务。如果添加“hasrestart => true”,那么它将使用“restart”参数中指定的命令重新启动服务。


pQd*_*pQd 22

看来我找到了一些东西:

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

service { sshd:
    ensure => running
}
Run Code Online (Sandbox Code Playgroud)

我们将看看这将如何运作。无论如何,欢迎您对此主题的想法。