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