What about something like this.
file { "/tmp/your_crontab_file":
ensure => present,
source => your_source,
before => Correct_crontab['ensure_correct_cron']
}
correct_crontab { "ensure_correct_crontab": }
define correct_crontab {
exec { "command you want to run":
path ["/path/you/need/here"],
unless => "`diff /tmp/your_crontab_file /etc/crontab > /dev/null
2>&1`",
}
}
It would put your cron source in a temp dir, and execute a command for
updating your crontab only if the crontab and the source is different.
Regards
2009/4/17 Ian Burrell <[email protected]>
>
> Is there a way to copy a source file to a temporary location? Or to
> download a file by comparing it to a different file? The problem I am
> trying to solve is updating crontabs when the source file changes.
> Our crontab files are checked into version control, synced by "file"
> to a temp file, and applied with "crontab". For various reasons, we
> can't use the cron type.
>
> define crontab($host = $hostname) {
> $path = "/tmp/$name.$host.cron"
> remotefile { $path:
> source => "operations/cron/$host/$name.cron",
> }
> exec { "crontab-$name":
> command => "crontab -u $name $path",
> subscribe => File[$path],
> refreshonly => true,
> }
> }
>
> The problem is it compares the source file to the temp file. If is the
> crontab is changed manually, this doesn't notice. In fact, it only
> syncs when the temp file is deleted weekly by tmpwatch. It should be
> possible to compare the source file with /var/spool/cron/$name. I
> would prefer to use the "crontab" command to install it which means
> downloading to a temp file. I am guessing that the issue shows up with
> other files that need to be installed with a command.
>
> - Ian
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---