Pete,

The only thing affected by onlyif here is the /bin/echo command
itself.  You can even see this in your logged output.

On May 1, 1:56 pm, Pete Emerson <[email protected]> wrote:
> I'm trying to get a cron entry to exist based on the contents of a file.
>
> I tried this:
>
>     exec { "check-cron":
>         command => "/bin/echo",
>         logoutput => true,
>         onlyif => "/bin/grep 'crontab' /etc/crontab.txt"
>     }
>     cron { exec-date:
>         require => Exec["check-cron"],
>         ensure => "present",
>         command => "date >> /tmp/date.log",
>         user => "root",
>         minute => "*/10"
>     }
>
> My grep returns a value of 2 because /etc/crontab.txt does not exist:
> # /bin/grep 'crontab' /etc/crontab.txt
> grep: /etc/crontab.txt: No such file or directory
> # echo $?
> 2
>
> and yet puppet wants to install the crontab:
> # /usr/sbin/puppetd --test --noop
> info: Caching catalog at /var/lib/puppet/localconfig.yaml
> notice: Starting catalog run
> notice: //Cron[exec-date]/ensure: is absent, should be present (noop)
> notice: Finished catalog run in 4.22 seconds
>
> Once I put the text in /etc/crontab.txt, the logic gets reversed:
>
> # echo crontab >> /etc/crontab.txt
> # /usr/sbin/puppetd  --test --noop
> info: Caching catalog at /var/lib/puppet/localconfig.yaml
> notice: Starting catalog run
> notice: //Exec[check-cron]/returns: is notrun, should be 0 (noop)
> notice: //Cron[exec-date]/ensure: is absent, should be present (noop)
> notice: Finished catalog run in 4.27 seconds
>
> According to the documentation on onlyif:
>
> If this parameter is set, then this exec will only run if the command
> returns 0.
>
> I'm stumped. And I may not be approaching this in the right way. Any
> pointers would be appreciated. Also, the logic here (if I had it working)
> would not permit *removal* of the cron job if it exists. I could put two
> logically opposite entries in there to do that, but now it just seems pretty
> ugly, so I suspect I'm missing the elegant solution.
>
> Pete
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to