As we are starting to re-factor our puppet modules using Craig's 
roles/profile design we have found that this system works well for servers 
(or groups of servers) who have an entire stack of technology deployed to 
them or who all are part the same custom application. Clusters of servers 
typically have a unique set of configuration and fit well into this design. 
 For example, a web-server in the "app1" cluster may look like:

node webserver1 {
  include role::app1_webserver
}

class role::app1_webserver {
  include profiles::base
  include profiles::webserver:app1
}

class profiles::webserver::app1 {
  class { '::apache':
    a => 'x',
    b => 'y',
  }

  file { "/etc/something":
    ensure => present,
    content => template("apache/blah.erb"),
  }
}

Along with standard apache, there are various other custom/non-standard 
things that need to be done.  This works well in profiles because it 
provides a layer of abstraction between the component modules and this 
extra configuration is common for all servers in the "app1" cluster. 

I'm having trouble understanding how to treat those "one-off" servers who 
just need things like a standard apache, or a standard mysqld installation, 
but aren't part of any common application and don't need any custom stuff. 
 I thought about defining profiles like so:

class profiles::webserver::apache::generic {
  include ::apache
}

I feel like this design just over complicates the profiles logic, but I 
can't seem to figure out another way to handle this type of scenario. 
 Furthermore, what if I need a generic webserver with PHP?  Do I need 
another profile (ie, profiles::webserver::apache::generic::php).  Can 
anyone give any input on to how I should be handling this?

Thanks,

Josh

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/8cac06f5-90fc-4cd3-b158-7cb20bb22fef%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to