Issue #1843 has been updated by BMDan.
luke wrote: > Can you just ignore the Yum repos made by the rpm and recreate them? That > is, respecify them entirely? Not always. For example, the yumrepo type lacks a "mirrorlist" option. And regardless, I'd rather put the latest RPM copy of a repo on a box than put in place a potentially-outdated definition that I have to update every time the repo changes. Take a look at the old link mconigliaro posted; it's the exact same problem. I seem to recall from IRC at the time that fixing this was simply a matter of removing the part of yumrepo that caches repo status before stanzas are evaluated. ---------------------------------------- Bug #1843: race condition or caching problem with yumrepo and exec http://projects.reductivelabs.com/issues/show/1843 Author: mconigliaro Status: Needs more information Priority: Normal Assigned to: Category: yumrepo Target version: Complexity: Unknown Affected version: 0.24.6 Keywords: Hello, I'm trying to use puppet to manage some RPM repos on CentOS 5.2. I've created a recipe that uses the exec type to create the appropriate .repo files (by installing an RPM) and then sets the priority for each repo via the yumrepo type: <pre> class yum { package { "yum-priorities": ensure => installed } yumrepo { ["base", "updates", "addons", "extras"]: priority => "1"; "centosplus": priority => "2"; "xensource": priority => "10"; ["epel", "epel-debuginfo", "epel-source", "epel-testing", "epel-testing-debuginfo", "epel-testing-source"]: require => Exec["install-epel"], priority => "20"; "rpmforge": require => Exec["install-rpmforge"], priority => "30", } exec { "install-epel": command => "rpm -U --force http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm", creates => ["/etc/yum.repos.d/epel.repo", "/etc/yum.repos.d/epel-testing.repo"]; "install-rpmforge": command => "rpm -U --force http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm", creates => "/etc/yum.repos.d/rpmforge.repo", } } </pre> What should happen is that the RPM gets installed first, then the yumrepo type will see the new .repo files and modify them appropriately. Unfortunately, even though everything is happening in the correct order, puppet does not see the new .repo files and creates its own (resulting in invalid .repo files). I temporarily modified the exec lines to do an "ls /etc/yum.repos.d/" and used logoutput just to make sure the .repo files were being created. <pre> info: Caching catalog at /var/lib/puppet/localconfig.yaml notice: Starting catalog run notice: //Node[default]/baseclass/yum/Exec[install-rpmforge]/returns: CentOS-Base.repo notice: //Node[default]/baseclass/yum/Exec[install-rpmforge]/returns: CentOS-Media.repo notice: //Node[default]/baseclass/yum/Exec[install-rpmforge]/returns: XenSource.repo notice: //Node[default]/baseclass/yum/Exec[install-rpmforge]/returns: mirrors-rpmforge notice: //Node[default]/baseclass/yum/Exec[install-rpmforge]/returns: rpmforge.repo notice: //Node[default]/baseclass/yum/Exec[install-rpmforge]/returns: executed successfully info: create new repo rpmforge in file /etc/yum.repos.d/rpmforge.repo </pre> notice that even though the rpmforge.repo file is there (line 7), puppet wants to create a new one (line 9). ---------------------------------------- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://reductivelabs.com/redmine/my/account --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en -~----------~----~----~----~------~----~------~--~---
