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