summaryrefslogtreecommitdiff
path: root/manifests/openbsd.pp
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2011-03-15 20:04:18 -0400
committerMicah Anderson <micah@riseup.net>2011-03-15 20:05:36 -0400
commit31652d945b348175b6fe3a43880a2448a324787b (patch)
treefee0ae8ced2126e6c273efff0e9361faab9a16b4 /manifests/openbsd.pp
parent8aaf0f8b167702dd2b8e4d7e01b33d5915cf4f3b (diff)
instead of using $RANDOM, which isn't POSIX, we get even more esoteric by pulling 2 bytes from /dev/urandom, giving them to od which turns them into unsigned decimals, and then we bitshift the output, either by 5 or 6 depending on if we are replacing $RANDOM/1000*60 (right sift by 5 is the same as dividing by 2^N, or /32) or $RANDOM/2000*60 (range of [0,983])
Thanks to dkg for working through this with me, not only did he come up with it faster than a human brain should be able to function, he had the patience to explain all the individual pieces that I did not understand to me.
Diffstat (limited to 'manifests/openbsd.pp')
-rw-r--r--manifests/openbsd.pp4
1 files changed, 2 insertions, 2 deletions
diff --git a/manifests/openbsd.pp b/manifests/openbsd.pp
index 2e3c493..1df5a9e 100644
--- a/manifests/openbsd.pp
+++ b/manifests/openbsd.pp
@@ -19,12 +19,12 @@ class puppet::openbsd inherits puppet::base {
cron {
'puppetd_check':
- command => '/bin/ps ax | /usr/bin/grep -v grep | /usr/bin/grep -q "puppet agent" || (sleep $(($RANDOM/2000*60)) && /usr/local/bin/puppet agent)',
+ command => '/bin/ps ax | /usr/bin/grep -v grep | /usr/bin/grep -q "puppet agent" || (sleep $(( $(</dev/urandom od -N2 -t u2 -A n) >> 6 )) && /usr/local/bin/puppet agent)',
user => root,
minute => 0;
'puppetd_restart':
- command => 'sleep $((echo $RANDOM/2000*60)) && /bin/kill `/bin/cat /var/run/puppet/agent.pid`; /usr/local/bin/puppet agent',
+ command => 'sleep $(( $(</dev/urandom od -N2 -t u2 -A n) >> 6 )) && /bin/kill `/bin/cat /var/run/puppet/agent.pid`; /usr/local/bin/puppet agent',
minute => 0,
hour => 22,
monthday => '*/2',