Forum: CFEngine Help
Subject: Re: installing specific packages from local directory
Author: neilhwatson
Link to topic: https://cfengine.com/forum/read.php?3,25415,25418#msg-25418
vars:
'epelrpm' string => 'epel-release';
'epelrpm' string => '6-5';
'epelrpm' string => 'noarch';
methods:
"install" usebundle => rpm_file('main.epelrpm');
}
bundle agent rpm_file(rpm){
vars:
'i' slist => getindices('$(rpm)');
'file' string => '$($(rpm))-$($(rpm)).$($(rpm)).rpm';
'loc' string => '/var/cache/rpms';
files:
'$(loc)/$(file)'
create => "true",
copy_from =>
remote_dcp("$(g.sitefiles)/rpms/$(file)","$(sys.policy_hub)");
packages:
'$($(rpm))'
package_version => '$($(rpm))',
package_architectures => { '$($(rpm))' },
package_method => rpm_version_nhw('$(loc)'),
classes => if_notkept("rpm_file_missing"),
package_select => '>=',
package_policy => 'addupdate';
reports:
rpm_file_missing::
"RPM file missing";
}
body package_method rpm_version_nhw(repo)
{
package_changes => "individual";
package_list_command => "/bin/rpm -qa --queryformat \"i | repos | %{name} |
%{version}-%{release} | %{arch}\n\"";
# set it to "0" to avoid caching of list during upgrade
package_list_update_ifelapsed => "240";
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_update_command => "/bin/rpm -Uvh ";
package_delete_command => "/bin/rpm -e --nodeps";
package_noverify_regex => ".*[^\s].*";
}
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine