On Thursday, May 15, 2014 12:22:02 AM UTC-5, mjus...@gmail.com wrote: > > Hi all, > > We use the roles/profiles/components model originally suggested by Craig > Dunn fairly heavily. In our case: > > > - The role is a business name, like "Application X App Server" > - The profile is the technical name, like "Base Components" or > "Webserver" > - The components are either wrapper classes around modules or modules > themselves, like "PHP" or "Apache". > > For the most part, this works well. We can have, for example: > > > - MyFace Application Server > - Base Components > - SSSD > - Sudo > - NTP > - PHP Webserver > - PHP > - Apache > - PHP-FPM > - Memcache > > However, we're running into trouble how to handle the situation where you're > running a box with multiple functions... for example, WordPress and Drupal. > In that case, how do you handle configuration conflicts? On the surface, > it seems like we would create a more generic profile like "PHP Webserver" > (like I did in the above example). If I do this, however, I lose the > ability to define profile specific variables such as firewall rules, cron > jobs, etc. > > Any thoughts on this? >
If you follow Dunn to the letter then each node has exactly one role. Therefore, if you want a box with multiple functions then you need to define a role that encompasses all of them. That's a useful exercise in itself, as it makes you think about *why* those functions are all served by the same machine. Suppose, then, that you have a role for what you're talking about, something such as "Satellite Office Omnibus Server" or whatever. You then proceed as normal for the pattern, by defining one or more profiles for machines having that role. Those profiles define all the needed components, just as your other profiles do. Presumably the profiles for such roles will be larger than most. I think the key hurdle here is defining appropriate roles. "Multi-function computer" isn't a role, it's just a vague description. Given genuine, coherent roles for these computers, I think everything else will fall out fairly naturally. John -- 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/442f6d7c-6696-420e-9933-1edd95c98f56%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.