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

Reply via email to