Hi, I've been looking into Puppet recently and I'm trying to setup a couple of virtual machines that should mimick what's in production. I'm pretty much a developer trying to lean towards DevOps :-) Locally, I'm using Vagrant and the CentOS 6.5 64-bit box with Puppet 3.4.3 that was published by Puppetlabs, which should somewhat mirror what's on the servers (a custom AMI based on CentOS 6.5). What I'm trying to do right now -- and I've found a bunch of ways to do this -- is to setup a couple of repositories (EPEL and MySQL Community being the most important ones). I've noticed that people do this in a number of ways, from grabbing the RPM package to using the 'yumrepo' type to adding a custom module for each repo or by using a general purpose Yum module (like the one from example42) and specifying the repos there. Normally, when I install those repos, I download the RPM locally and install it using the command line, for example: yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm That RPM will create a number of entries in the /etc/yum.repos.d/, which seems odd to add each one by hand using the `yumrepo` type. I've seen this example given a number of times (it's also the correct answer to a similar question on SO): node default { include base } class base { yumrepo { "IUS": baseurl => "http://dl.iuscommunity.org/pub/ius/stable/$operatingsystem/$operatingsystemrelease/$architecture", descr => "IUS Community repository", enabled => 1, gpgcheck => 0 } } Then, for any node that extends base you can say class foo { package { "bar": ensure => installed, require => Yumrepo["IUS"] } } Going back to the example with the MySQL Community RPM, I would have to manually do this for three repos (the other two are disabled): * mysql-connectors-community * mysql-tools-community * mysql56-community Is this still the accepted solution in the Puppet community? If so, how would you organize those repositories? Create a module for each repository? Create a repository module with all the sources? And, somewhat related to this subject, I've noticed that I might get some errors when provisioning my VMs because the base system wasn't up to date. I was planning to add a `yum update` command to my setup, but I realize that this might not be the best solution because I might not want to update the base system everytime I run puppet. What's the best way to update the system only when running Puppet for the first time? Thanks, Max -- 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/lpeenc%243ai%241%40ger.gmane.org. For more options, visit https://groups.google.com/d/optout.