As puppet will change the cron object at each run, use something that is different per machine, but the same for the same machine: its IP.

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 :
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))')

    cron  { "manual-puppet":
        command => "/usr/sbin/puppetd --server=ps-dev-web1 --logdest=/
var/log/puppet/puppet.log --verbose --onetime --no-daemonize",
        user    => "root",
        hour    => "*",
        minute  => $minute,
        ensure  => present,
   }
}


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:

[r...@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.

I've tried several different things, including removing the crontab
file - "crontab -r"  and re-running the command manually to re-create
the crontab entry.  I've, verified, my crond is running normally, by
running random commands and verifying they executed through cron.  It
would seem only "puppetd" is not success at running through
crontab.

Fortunately, only one of my puppet clients is experiencing this
issue.

Anyone have an idea of what could be perpetuating this behavior ?

Thanks.



--
Aurelien Degremont
CEA

--
You received this message because you are subscribed to the Google Groups "Puppet 
Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to