On 01/30/2012 05:30 AM, Jeff McCune wrote:
In the meantime, I document and leave it up to the end user to create
another class that composes modules together.  With your example, I'd
do something like this as the end user.  As the module author, I'd try
and write mysql and ldap as if the other didn't exist.

node www1 {
   include site::dbserver
}

#<modulepath>/site/manifests/dbserver.pp
# This is what it means to be a database at the Acme.com site.
class site::dbserver {
   class { ldap: }
   ->  class { mysql: }
}

[snip]

Jeff, thanks for this. Its easy to get confused about how to do this correctly. This example and way of explaining how modules should be independent is very important and maybe not visible enough in the current documentation.

Jos, I disagree with you about stages. I feel stages should be the VERY LAST resort .. before going to a design that require two Puppet runs ;-)

I do think Puppetlabs should teach and weigh in more on site design in the community. I've sent some tweets to Gary Larizza about having some challenges in coming up with a sensible design and I'm happy to see what we've done is in line with Jeffs example. But it took us a good YEAR to get there. Maybe we're just slow.

What was an eye-opener on site design AND simplicity for us was Jasper Poppes talk about "Structuring Puppet" at Puppetconf. We learned a lot from looking at his modules. Jasper, if you read this, thank you!

http://www.slideshare.net/PuppetLabs/puppetconf2011-small#21


--
http://www.uib.no/personer/Jan.Ivar.Beddari

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