Forum: CFEngine Help
Subject: Help with packages
Author: neilhwatson
Link to topic: https://cfengine.com/forum/read.php?3,25312,25312#msg-25312

Greetings,

Consider this body from the stdlib.

body package_method rpm_version(repo)
{
package_changes => "individual";

package_list_command => "/bin/rpm -qa --queryformat \"i | repos | %{name} | 
%{version} | %{arch}\n\"";

package_list_name_regex    => "[^|]+\|[^|]+\|\s+([^\s|]+).*";
package_list_version_regex => "[^|]+\|[^|]+\|[^|]+\|\s+([^\s|]+).*";
package_list_arch_regex    => "[^|]+\|[^|]+\|[^|]+\|[^|]+\|\s+([^\s]+).*";

package_installed_regex => "i.*";
 
package_file_repositories => { "$(repo)" };

package_name_convention => "$(name)-$(version)-$(arch).rpm";

package_add_command => "/bin/rpm -ivh ";
package_delete_command => "/bin/rpm -e --nodeps";
package_verify_command => "/bin/rpm -V";
package_update_command => "/bin/rpm -Uvh ";
package_noverify_regex => ".*[^\s].*";
}


And this bundle.


body common control {

        bundlesequence => {
                "main",
        };

        inputs => {
                "cfengine_stdlib.cf",
        };
}

bundle agent main {

        vars:

                'epelrpm' string => 'epel-release';
                'epelrpm' string => '6-5';
                'epelrpm' string => 'noarch';

        methods:

        "install" usebundle => rpm_file('main.epelrpm');

}

bundle agent rpm_file(rpm){

# epel-release-6-5.noarch.rpm

        vars:

        'i' slist => getindices('$(rpm)');

        packages:

                '$($(rpm))'
                        package_version => '$($(rpm))',
                        package_architectures => { '$($(rpm))' },
                        package_method => rpm_version('/var/cache/rpms/'),
                        package_policy => 'addupdate';

        reports:

                cfengine::
                        "$(i) => $($(rpm)[$(i)])";
}


I expect to see a command rpm -vh /var/cache/rpms/epel-release-6-5.noarch.rpm 
being run by the agent. Actual results show no sign.


cf3>  ???????????????????????????????????????????????????????????????
cf3>   Done checking packages and patches
cf3>  ???????????????????????????????????????????????????????????????
cf3>  -> Package version specified explicitly in promise body
cf3>  ... trying listed arch noarch
cf3>  -> Looking for (epel-release,*,noarch)
cf3> No installed packages matched (epel-release,*,noarch)
cf3>  -> Looking for (epel-release,6-5,noarch)
cf3> No installed packages matched (epel-release,6-5,noarch)
cf3> Checking if package (epel-release,6-5,noarch) is at the desired state 
(installed=0,matched=0)
cf3>  -> Package promises to refer to itself as "epel-release-6-5.noarch.rpm" 
to the manager
cf3>  -> Package version seems to match criteria
cf3>  -> Schedule package for addition
cf3>  -> Package (epel-release-6-5.noarch.rpm,any,any) found
cf3>  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
cf3>    Offering these package-promise suggestions to the managers
cf3>  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
cf3>  -> Deletion schedule...
cf3>  -> Addition schedule...
cf3> Execute scheduled package addition
cf3> Command prefix: /bin/rpm -ivh
cf3>  -> Update schedule...
cf3>  -> Patch schedule...
cf3>  -> Verify schedule...


What mistake have I made?

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

Reply via email to