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+unsubscribe@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.