Greetings all

I'm struggling with a cfengine recipe - my goal is to check an slist of RPMs to
see if they are installed, and install any missings ones. Alas, if at least one
of the RPMs is installed, the class check fails, and the missings RPMS are not
installed. If all of the RPMS are missing, then the class check passes and the
RPMS are installed.

In this example, I'm checking for the presence of rpm-build and createrepo

Here is my setup:
cf-agent --version
This comprises cf-agent core community version 3.0.3 - (C) Cfengine AS 2008-
(svn build)

body common control

{
bundlesequence  => { "checkrpms" };
}


bundle agent checkrpms
{
vars:
 "rpms_needed" slist            => { "rpm-build", "createrepo" },
        comment                 => "List of required RPMs";

classes:
  "rpms_installed" expression   => returnszero("/bin/rpm -q 
$(rpms_needed)","noshell"),
        comment                 => "Check if required rpms are installed";

commands:
 !rpms_installed::
   "/usr/bin/yum -q -y install $(rpms_needed)",
        comment                 => "Installing $(rpms_needed)";
}

If I uninstall createrepo and run the recipe, this is the output:
# cf-agent -I -f ./check_rpms.cf
rpm-build-4.4.2.3-18.el5
package createrepo is not installed
rpm-build-4.4.2.3-18.el5
package createrepo is not installed
rpm-build-4.4.2.3-18.el5
package createrepo is not installed
#

If I uninstall both createrepo and rpm-build, the output is:
# cf-agent -I -f ./check_rpms.cf
package rpm-build is not installed
package createrepo is not installed
 -> Executing '/usr/bin/yum -q -y install rpm-build' 
...(timeout=-678,owner=-1,group=-1)
 -> Completed execution of /usr/bin/yum -q -y install rpm-build
 -> Executing '/usr/bin/yum -q -y install createrepo' 
...(timeout=-678,owner=-1,group=-1)
 -> Completed execution of /usr/bin/yum -q -y install createrepo
rpm-build-4.4.2.3-18.el5
createrepo-0.4.11-3.el5
rpm-build-4.4.2.3-18.el5
createrepo-0.4.11-3.el5
#

Can anyone help me tweak the recipe to install the missing RPM if either are
not installed?

Many thanks

Kind regards
Andrew



Shop spring’s building blocks at NET-A-PORTER.COM
______________________________________________________________________

CONFIDENTIALITY NOTICE
The information in this email is confidential and is intended solely for the 
addressee. Access to this email by anyone else is unauthorised. If you are not 
the intended recipient, you must not read, use or disseminate the information. 
Any views expressed in this message are those of the individual sender, except 
where the sender specifically states them to be the views of Net a Porter Ltd. 

Net A Porter Ltd is a company registered in England & Wales Number: 3820604 
Registered Office: The Dome, Whiteleys Centre, 151 Queensway, London, W2 4YN.
_____________________________________________________________________
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to