Forum: CFEngine Help
Subject: Re: cf-exced ignores splaytime on syntax errors / unleash the stampede
Author: sauer
Link to topic: https://cfengine.com/forum/read.php?3,24225,24233#msg-24233

So, all you really want to defer is your file copies running once an hour?  
Perhaps you could define a class in your policy - say, "oktocopy" - and use the 
splayclass function to set that. As in:


classes:
  "oktocopy" expression => splayclass("$(sys.host)", "hourly");


That should be true only during the same 5 minute window as the splaytime would 
be true, but gives you the advantage of being able to control individual 
promises using the oktocopy class.  It'd free up the possibility of evaluating 
other promises more frequently.  But you could also just negate the class and 
use that as an abortclass so cf-agent (or a given bundle) would keel over if 
the oktorun class wasn't set.  And this is less likely to break upon a syntax 
error (it could be duplicated to failsafe.cf if needed). :)

I personally run cf-execd using a 2 minute splaytime combined with a 15 minute 
ifelapsed timer on the normal policy update promises (5 minutes on the 
secondary masters' copies from the primary master, resulting in a 22 minute 
maximum deployment delay for the non-critical policies), which is working well 
in an environment where I have a separate policy server for every couple 
thousand hosts.  Using the ifelapsed timer in combination with the splayclass 
means the updates are already staggered some by the CFEngine restart event, and 
even if someone restarts all of the machines at midnight, they have varying 
startup times and the 2 minute skew.  I've been considering bumping the splay 
time up to 4, but the policy is small enough for now that the secondary masters 
are all keeping up just fine.

For the record, I do use the splayclass function to spread out some more 
filesystem-intensive checks across an hour (using the path as the key to hash 
upon).  It's nice to not hammer on the disk when I can avoid it. :)

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to