It makes sense, and is in fact suggested on this site, to have a critical file change trigger a service restart with puppet meta-parameters (such as notify or subscribe). For example:
## file definition for printers.conf
file { "/etc/cups/printers.conf":
[snip],
source => "puppet:///module/etc/cups/printers.conf"
}
## service definition for sshd
service { 'cups':
ensure => running,
subscribe => File['/etc/cups/printers.conf']
}
But in the case of CUPS, this triggers and endless loop of restarts; the logic works like this:
- Change puppetmaster's version of
/etc/cups/printers.conf
- puppetmaster pushes new version to client, triggering cups restart
- cupsd restart insists on putting its own time stamp at the top of printers.conf, 'Written by cupsd...'
- This change will be seen as out of
date, so after
runinterval
, we return to (1).
Is there a way to suppress cupsd's need to time stamp the file? Or is there a puppet trick that could help here?
Thanks!