Ok folks, I've read BestPractices and probably most of the wiki docs but I am still banging my head about how to layout a new puppet deployment. Everything is fresh, fresh repo, fresh puppet install.
We will use SVN for version control. Here are some of my challenges. I go back and forth on how I feel best to solve them so I would appreciate any input. My company manages about 200 Linux boxes mostly RHEL4 and RHEL5. We have four datacenters which each requires a different resolvers, ldap settings, proxy server etc etc etc. Additionally we have customers who sometimes have settings that differ from that of the rest of the datacenter and further still, host 'classes' or services, webserver, database server etc. 1. What are some good ways to organize all of this both from a file perspective? Does it make sense to define defaults in classes and then override them in datacenter classes? i.e. resolver class has resolver::list [ '1.2.3.4' ] then a datacenter class overrides it with Resolver::list [ '4.4.4.4' ] or maybe just append to it. 2. What is a class and what is a module? classes: datacenter datacenter::a customer customer::one service service::s_www service::s_sldap modules: resolver authconfig (ldap, nss_ldap) logrotate (basically matching the name of the package it configures) Then a node gets a datacenter, customer and service class which rely on the modules to make config changes. I would like to have the option of doing things additively and not just strictly replace values. For example in datacenter a the resolvers might be 1.1.1.1 and 2.2.2.2 but customer one wants to add their primary dc as the first resolver making their resolvers 3.3.3.3, 1.1.1.1, 2.2.2.2. But if we update the datacenter a resolvers to 2.2.2.2, 4.4.4.4 customer one's server in datacenter a ends up with resolvers 3.3.3.3, 2.2.2.2, 4.4.4.4. 3. How to organize subversion repo, I want to have testing and development. puppet/trunk - development {modules,manifests,plugins,puppet.conf,etc.} puppet/tags/production/{modules,manifests,plugins,puppet.conf,etc.} puppet/tags/testing/{modules,manifests,plugins,etc.} (no need for puppet.conf and a few other things) So pretend you are starting anew, what would you do differently? Regards, -Alan --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---