Our site has several dozen yum repositories. Pushing all yum repositories to 
all servers isn't practical; it hurts performance, some repositories are 
OS-specific, and some repositories cause conflicts with each other (we have a 
ruby187 repo and a ruby 193 repo, for example).

In our current setup, we have one module with all our yumrepos defined 
virtually:

        class yumrepos {
          @yumrepo{'puppet':
            …
          }
          @yumrepo{'python26':
            …
          }
          …
        }

And our various modules realize those resources as needed:

        class puppet(...) {
          realize Yumrepo['puppet']
          …
        }

However, this requires every package definition to require the Yumrepo 
resource. I can ease the pain with resource defaults, but it doesn't go away 
completely. I have found on puppet 2.7 that virtual resources are evaluated in 
the run stage they are defined in, not the run stage they are realized in, so 
that I can do in site.pp:

        stage{'package-setup': before => Stage['main'] }
        class{'yumrepos': stage => 'package-setup' }

Then all yum repositories that a node will use are on the machine before any 
packages are installed. Is this a kosher use of run stages? Am I going to be 
surprised by something I didn't consider? I have only tested this behavior in 
Puppet 2.7 and don't know if it is subject to change in later releases. How do 
others handle this problem?

-David

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/CC9908D1-77D9-44C0-A118-B76430A12B25%40aqwari.net.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to