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
-~----------~----~----~----~------~----~------~--~---

Reply via email to