After we have used Puppet to update a service config file, we would like to restart the service so as to apply the new changes to the service.
Say for example, we want to keep the SSH service alive and whenever the /etc/ssh/sshd_config is synchronized from the Puppet server, restart the SSH service. This can be done as follow.
class system::ssh-service {
# Install the required packages
package { "openssh-server": ensure => installed }
package { "openssh-client": ensure => installed }
# Synchronize the sshd_config
file { "/etc/ssh/sshd_config":
mode => 600,
owner => "root",
group => "root",
require => Package["openssh-server"],
notify => Service["sshd"], # Restart ssh server if being updated
}
# Ensure the ssh server is running
service { "sshd":
ensure => "running",
enable => "true",
require => Package["openssh-server"],
}
}
So whenever there is new update of sshd_config, the SSH service will be restarted.
Done =)
Reference: Puppet CookBook – Restart a service when a file changes

One thought on “Puppet – Restart a service after a file has changed”