On 05-04-11 16:06, [email protected] wrote:
> Forum: Cfengine Help
> Subject: Hard classes vs defined classes ?
> Author: jean_luc
> Link to topic: https://cfengine.com/forum/read.php?3,21345,21345#msg-21345
>
> Hello Everybody,
>
> I'm trying to setup rather complicated infrastructure based on cfengine3
> community edition.
> Following the statement:
> "The bundlesequence acts like the `genetic makeup' of the configuration. In a
> large configuration, you might want to have a different bundlesequence for
> different classes of host, so that you can build a complete system like a
> check-list from different combinations of building blocks."
>
> So I'm trying to build setup which looks like this:
>
>
> body common control
> {
> bundlesequence => {
> "update",
> "garbage_collection",
> "main",
> "cfengine",
> "main_my"
> };
>
> # inputs cannot be redefined !
> redhat_sample::
> inputs => {
> "update.cf",
> "site.cf",
> "cfengine_stdlib.cf",
> "my_libs.cf",
> "populate_keys_ssh.cf",
> "tmp_cleaner_redhat.cf"
> };
>
> ubuntu_sample::
> inputs => {
> "update.cf",
> "site.cf",
> "cfengine_stdlib.cf",
> "my_libs.cf",
> "populate_keys_ssh.cf",
> "tmp_cleaner.cf"
> };
>
> central_system::
> inputs => {
> "update.cf",
> "site.cf",
> "cfengine_stdlib.cf",
> "my_libs.cf",
> "populate_keys_ssh.cf",
> "hosts/central_systems/promises.cf"
> };
>
> devel::
> inputs => {
> "update.cf",
> "site.cf",
> "cfengine_stdlib.cf",
> "my_libs.cf",
> "populate_keys_ssh.cf",
> "hosts/devel/promises.cf"
> };
>
> [...]
>
> ... and trying to fire the cf-agent from cron with -D flag:
>
> 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /var/cfengine/bin/cf-execd -F
> --define "central_system"
>
> And of course it doesn't work because -D is treated as soft class, while hard
> classes works well.
> Probably, I'd be able to solve the problem with some commercial version of
> cf3, according to cfengine:
>
>
> community> # Extended system discovery is only available in version Nova and
> above
> community> Additional hard class defined as: 64_bit
> community> Additional hard class defined as: linux_2_6_28_hardened_r9v4
> community> Additional hard class defined as: linux_x86_64
> community> Additional hard class defined as:
> linux_x86_64_2_6_28_hardened_r9v4
>
> I am little tired with rephrasing the whole bundlesequence and looking for
> right solution :-)
>
> My questions are:
>
> * shouldn't be -D classes treated as hard class ?
>
> * could someone propose some other organisation of the bundle sequence ? I
> would like to prepare it in a way, where one Admin is unable to block all
> promises with simple typo. I was hoping that using hard clasesses solves the
> problem in a way that files belonging to working set of promises wouldn't be
> blocked by promises under development.
>
Paul,
What is defined for your 'exec_command' in body executor control, eg
{{{
exec_command => "$(sys.workdir)/bin/cf-agent -f failsafe.cf &&
$(sys.workdir)/bin/cf-agent"; }}}
}}}
You now use: /var/cfengine/bin/cf-execd -F --define "central_system". The
hard class is only for cf-execd.
So your exec_command in body executor control must be:
{{{
central_system::
exec_command => "$(sys.workdir)/bin/cf-agent -f failsafe.cf &&
$(sys.workdir)/bin/cf-agent -Dcentral_system";
--
********************************************************************
* Bas van der Vlies e-mail: [email protected] *
* SARA - Academic Computing Services Amsterdam, The Netherlands *
********************************************************************
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine