> 3. Classes in /var/cfengine/state/allclasses.txt, but unspecific. It
would be
> straightforward to print out hard classes, but what for? How would
you use them? I need to
> know to comment on whether there is a better way.
In my case (granted, still on CF-2), when running things like modules
and the occasional support script, it is handy to be able to have these
scripts have the same depth of knowledge about the system as cfagent
itself does. The ${cfallclasses} macro is awkward and breaks after 2048
characters anyway. There is also an environment variable, as far as I
know, but parsing it is sometimes not particularly easy, and again there
may be string length limitations on some shells. But the allclasses.txt
file is a great alternative in my opinion, since you can use simple
tools like grep and awk to quickly and reliably determine whether a
particular class is defined outside of cfagent.
I'll give an example. In our case, we have cfagent setup to run at
bootup and shutdown (with the 'bootup' and 'shutdown' classes defined,
respectively) so that volatile configuration changes such as kernel
upgrades can be done at a time when we know the machine is going to be
rebooted. These runs are accomplished using a standard init script in
/etc/init.d that is effectively disconnected from cfagent; it's purpose
in life is simply to run cfagent during boot and shutdown.
But if the allclasses.txt file (or a scriptable alternative) is
available, then I can make the init script "smarter" about deciding
whether to run at boot/shutdown or not. Our cfengine policy takes about
2-10 minutes to run through, depending on what changes have to be made.
When you're rebooting a machine, those 2-10 minutes can feel like an
eternity. But if the init script could be smart enough to know that
(because class X is defined) that there aren't any volatile
configuration updates to make, then it can simply skip the
bootup/shutdown run, making rebooting of our systems that much less
painful (and reducing the duration of downtimes in some cases).
Paul Krizak 7171 Southwest Pkwy MS B200.3A
Senior Systems Engineer Austin, TX 78735
Advanced Micro Devices Desk: (512) 602-8775
Linux/Unix Systems Engineering Cell: (512) 791-0686
Silicon Design Division Fax: (512) 602-0468
On 01/22/10 15:36, Mark Burgess wrote:
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine