So you would recommend, when possible, to shove everything into one file? Say 
there is a lengthy and/or complex implementation… are there any general best 
practices to adhere to?

Also as a general guideline should one try and include all dependencies at the 
module level or at the node level? For example, I have a rails application that 
depends on nginx. Should I model that dependency in the node like:

node web {
  include nginx
  include rails
}

Or should it be modeled like:

node web{
  include rails
}

class rails {
  include nginx
}

Once again, thanks for your input.

- M


On Nov 24, 2012, at 3:19 PM, Ryan Coleman <r...@puppetlabs.com> wrote:

> 
> 
> 
> On Sat, Nov 24, 2012 at 11:18 AM, Smashed <static.void....@gmail.com> wrote:
> I would like to have puppet manage a puppet server, puppet dashboard and 
> puppet agents. Do you think it would be best to create one puppet module that 
> does all of these or is it best to break these out into 3 separate modules 
> (puppet-server, puppet-agent, puppet-dashboard, etc
> If you've got things that are related in concept, like these three, I'd 
> suggest keeping them in the same module but in three separate classes. As you 
> expand their functionality, if you find it's not worth maintaining everything 
> as one module, you can easily split things out. For example, you could have a 
> puppet module with puppet::agent, puppet::master & puppet::dashboard classes. 
> Perhaps they interact with each other, perhaps they don't.  
> Also within modules is there any general best practices for organizing your 
> classes and configuration applications? For example I read in the Pro Puppet 
> book its usually good to have an install, config and service class.
> 
> Unless you're getting really complex and lengthy with your implementation, I 
> don't recommend this practice. It might seem clean but you could quickly run 
> into class containment and ordering issues. Start by properly expressing 
> dependencies between resources inside your agent class for example and go 
> from there. More on containment here: 
> http://docs.puppetlabs.com/puppet/3/reference/lang_containment.html
> 
>  
> Also, check out the Puppet Forge for content that may suit your needs now or 
> give you inspiration and a place to start from. http://forge.puppetlabs.com/
> 
> The modules for managing Puppet (especially ours) there need a good bit of 
> love but pull requests accepted! 
> 
> 
> Thanks
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Puppet Users" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/puppet-users/-/W8PKqLTCrFUJ.
> 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.
> 
> 
> 
> -- 
> Ryan Coleman | Modules & Forge | @ryanycoleman | ryancoleman in #puppet
>  
> 
> 
> 
> -- 
> 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.

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