I have a Perl script that I pushed out to all my Puppet Linux clients. I have since edited my script, module/modulename/files/scripts/a_script script on the Puppet master, but the clients don't get the change because they have the file. Apparently it doesnt checksum or use modtime. What is the best practice to ensure the files are up to date wit the master version? Do I need to write checksum logic, or is there already built in functionality?
The code I used to initially push was:
file { '/sbin/a_script':
ensure => present,
mode => 744,
owner => root,
source => "puppet:///modulename/scripts/a_script"
}
Obviously deleting the file and having it pull it back is a hacky solution, I am hoping for something more eloquent.
UPDATE Puppet does checksum and sync files in the puppet:/// filebucket on next run, I must have had an error that caused the file declaration to not be run. When I moved the declaration to site.pp it did sync the changes to the already existing files on clients.