Have you considered using the --splay & --splaylimit options built into
puppet rather than constantly editing the crontab?
http://docs.puppetlabs.com/references/stable/configuration.html?action=diff&version=41#splay
>
> Six of the puppet clients are running the cronjob just fine at random
> intervals, except one. The thing about this host is that if I run the
> crontab entry command manually, it's successful:
>
> [root@ps-dev-app1 puppet]# /usr/sbin/puppetd --server=ps-dev-web1 --
> logdest=/var/log/puppet/puppet.log --verbose --onetime --no-daemonize
> info: Caching catalog for ps-dev-app1.plansourcedev.com
> info: Applying configuration version '1282328744'
> notice: /Stage[main]/Cron/Cron[manual-puppet]/minute: minute changed
> '5' to '31'
> notice: /Stage[main]/Cron/Cron[manual-puppet]/hour: defined 'hour' as
> '*'
> notice: Finished catalog run in 0.39 seconds
>
>
> However, when I run this through crontab, nothing happens.
> Here's what the /var/log/cron shows, when it executes the command
> through crontab:
> Aug 23 16:01:01 ps-dev-app1 crond[16367]: (root) CMD (/usr/sbin/
> puppetd --server=ps-dev-web1 --logdest=/var/log/puppet/puppet.log --
> verbose --debug --onetime --no-daemonize)
> And although the command seems to execute through crontab, there's no
> evidence of this otherwise. For one, the "/var/log/puppet.log" does
> not get created or append to existing log. The crontab entry should
> also reflect a change in interval time, but there's no evidence of
> this either.
Maybe just a typo, but the command you are running shows the puppet.log
should be created in /var/log/puppet/puppet.log but you are looking in
/var/log/puppet.log. Perhaps there is a permission issue or
/var/log/puppet/ does not exist?
> So I've decided to use crontab for all my puppet clients rather than
> the daemon. I've set-up a puppetmaster with seven puppet clients.
>
> I'm using the following pattern:
>
> class cron {
> $minute = generate('/usr/bin/env', 'sh', '-c', 'printf $((RANDOM
> %60+0))')
$minute = fqdn_rand(59)
That generates a random, but consistent, number in the 0-59 range based on the
name of the host. This will give some spread, but not the complete randomness
of the method above.
Daniel
--
✣ Daniel Pittman ✉ dan...@rimspace.net ☎ +61 401 155 707
♽ made with 100 percent post-consumer electrons
This seems overly complicated. Why not just have a bash wrapper
script execute from cron and execute puppetd for you:
#! /bin/bash
sleep $((RANDOM % 600))
exec puppetd $@
--
Jeff McCune
http://www.puppetlabs.com/
If you were going to do that, using splay might also make sense[1]. However,
that was already suggested earlier in the thread, and it doesn't give you a
predictable runtime for each node.
Personally, I would favour using the mcollective puppet execution director to
trigger off running on your nodes, but that is much, much further from where
the OP wanted to be and all. :)
Daniel
Footnotes:
[1] ...though it would presumably tie up more memory for longer, since
puppetd has a larger footprint than sleep(1) does.
--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To post to this group, send email to puppet...@googlegroups.com.
To unsubscribe from this group, send email to puppet-users...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Use ipaddress fact.
Here two ideas to get this value
# Get the last IP digit
$digits = split($ipaddress)
# Modulo 60
$minute = inline_template("<%= digits[3] % 60 %>")
Aur�lien
Franck a �crit :
--
Aurelien Degremont
CEA
> Another options which I've used successfully in the past is:
> http://projects.puppetlabs.com/projects/puppet/wiki/Cron_Patterns - see the
> section title: Setting Cron using a Puppet custom function
>
> One important thing to note is that when you get a random value, puppet will
> change it on each puppet run.
...but not, to be clear, the result of the fqdn_rand function, which does
something pretty similar to what you are proposing here with a custom
function.
Is there some extra benefit to the model you suggest over fqdn_rand?
Ohad Levy <ohad...@gmail.com> writes:...but not, to be clear, the result of the fqdn_rand function, which does
> Another options which I've used successfully in the past is:
> http://projects.puppetlabs.com/projects/puppet/wiki/Cron_Patterns - see the
> section title: Setting Cron using a Puppet custom function
>
> One important thing to note is that when you get a random value, puppet will
> change it on each puppet run.
something pretty similar to what you are proposing here with a custom
function.
Is there some extra benefit to the model you suggest over fqdn_rand?