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
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine