Hello all,

I'm using one bundle to make servers grouping.
In bundlesequence i have:
bundlesequence  => { 
                   "update",
                   "garbage_collection",
                   "groups",
                   "main"
                   };

groups define server groups:
something like:
"jboss_server" or => { "10_10_10_1", "10_10_10_2" };
"hadoop_server" or => { "10_10_10_4", "10_10_10_3" };
..
and so on

and main contains list of bundles to use for that groups:
bundle agent main
{
methods:
    any::
        "any" usebundle => time_check;
        "any" usebundle => jdk_install;

    jboss_server||hadoop_server::
        "app_users" usebundle => appusers;
        
    jboss_server::
        "jboss_server" usebundle => jboss_install;
        "jboss_server" usebundle => jboss_init_script;
        "jboss_server" usebundle => install_r;
...
and so on.

In bundle install_r
i have such class, to determine wheter specific package is installed:
classes:
    "forecast" expression => returnszero("/usr/bin/Rscript -e 'packages = 
installed.packages();rownames(packages)' | /bin/grep -q forecast","useshell");

And in this case on any server that do not belong to jboss_server group it 
fails because Rscript is not installed ( and it shouldn't )

What is weird for me, is why cfengine tries to execute this command on server 
it is not supposed to.

For instance if i do:
classes:
    jboss_server::
        "forecast" expression => returnszero("/usr/bin/Rscript -e 'packages = 
installed.packages();rownames(packages)' | /bin/grep -q forecast","useshell");

It works perfect - it is executed only on servers from jboss_serever class.


Thanks in advance.

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

Reply via email to