I've been using puppet on different companies and implementing the roles / 
profile pattern on some of them.

In theory the patter works very well but in practice I usually face 
challenges that I sort out implementing my own designs / solutions. I would 
like to know how you guys deal with that in case you do.

Say you have a typical LAMP stack and you have to deploy a web app so my 
classes would look something like this (super simplified version):

*Modules:*

class apache { //puppetlabs class }
class mysql { //puppetlabs class }
etc./. 

*Profile*:

class profile::webapp {

  class 'apache'
  class 'mysql'

  $name = hiera('webapp::name')
  apache::vhost {$webapp::name:}

}

*Roles:*

class role::prod_web {
  include 'base'
  include 'profile::webapp'
}

Now some of the questions I face:

1- Say thate for whatever reason the profile::webap requires a specific 
package... ie php-apc that is not covered by the apache module. The roles / 
profile states that you should always reference modules. Would you guys 
create a new class just to include a resource? What I usually end up doing 
is to add that package into the profile for the sake of simplicity.

2- Sometimes modules from puppetlabs or other contributors lacks of some 
functionality. Say for example you need to deploy a file under 
/etc/sysconfig. I wouldn't place that file under the profile class as that 
is used for multiple profiles definitions. However creating a new module 
for just a single file seams like too much of an overhead. What I usually 
do is I split up the profile module into multiple profile modules and use 
the repo -> install -> config -> service pattern. That allows me to create 
a file / template where to place my specific resources for that profile and 
still consume data from hiera to customize the behaviour. 

3- The problem with point 2 is that you might end up with too many profile 
classes and some of them might include a simple reference to a module. That 
is not much of a problem to me as I prefer to have my files attached to the 
right profile module rather than having multiple files on a single profile 
module... or multiple modules with just a couple of files.


Cheers!

Juan Breinlinger


-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/88ae6576-7407-4b27-a7b4-034e21683d43%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to