Hi,
To answer the original qustion with a somewhat cheap truism: It is
possible, but not required that profiles are composable. E.g.
profile::apache_server and profile::mysql_server should be trivially
composable, because they manage disjunct sets of resources. On the other
hand, profile::apache_server and profile::nginx_server might not be
composable, because both need to use port 80, which cannot be shared.
So to the question of building composable profiles, if your profiles
often need a specific set of php modules, it might ease the situation by
creating a profile::fat_php_installation, which contains all required
php modules and becomes the focal point for intra-cms-php-development. A
different approach would be finegrained classes for each php module,
which can be included multiple times across many profiles. A totally
different approach would be to create local php installations for each
CMS which do not talk to each other at all, leaving the CMS consumer to
choose the exact patch level and composition required.
Surely, there are several other possibilities. Which one is the "right"
one really depends on the structure of your development team and systems.
Regards, David
On 2014-05-17 14:39, Jesse Cotton wrote:
Yes it is feasible :) So really the server is just a PHP app server.
What makes it useable for all of the CMSs is that the correct set of
apache and php modules are installed, and it has the correct firewall
rules, cron jobs and backup jobs configured. With this in mind, my
inclination is to build a cms_app_server profile but that seems more
like a role then a profile.
On Friday, May 16, 2014 3:08:00 PM UTC-4, Joaquin Menchaca wrote:
Hello: This might be a dumb question, but can you build a system
manually with the various CMSes? Are there a cross-set of
technologies (Apache, PHP, MySQL) that will work on all CMSes in
your organization? I would think in terms in how you would build
these systems manually w/o puppet in some organized way, then see
how this can fit into puppet. If you can build some reference
platform that can host some or all of these, then you have your
basic profile for that wonder-web-box system.
Complexity might come in when you start separating, such as putting
php in it's own module and apache in another, then sequencing them
in profile. You can use augues to scissor in php specific
configurations (or alternatively creative erb ruby code to other
configurations). This is what I do for a nginx + php-fm configuration.
class profile::webserver { class { "nginx": } -> class { "php": } }
On Friday, May 16, 2014 8:55:35 AM UTC-7, Jesse Cotton wrote:
I work with Matt and am filling in for him since I posed this
question to him originally.
Our confusion really lies around how you layout profiles for a
multi-function box. For example, suppose you have a role, "CMS
App Server" that will host various CMS like Wordpress, Drupal,
and others. They are all built on top of the same technologies,
Apache, PHP, and MySQL. I don't believe you can build a separate
profile for each CMS b/c they will conflict (at least within
Puppet). Each will require a certain set of php modules and
settings, apache modules and settings, etc. So do you build a
single profile like profile::wordpress_drupal_cms3_cm4 or do you
build a profile::apachefpm profile? The later seems more logical
to me however you lose the ability to define profile specific
hiera variables b/c profile::apachefpm is generic.
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/be9a1775-2d62-49f2-8b25-ae072729c059%40googlegroups.com
<https://groups.google.com/d/msgid/puppet-users/be9a1775-2d62-49f2-8b25-ae072729c059%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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/5378A048.7010204%40dasz.at.
For more options, visit https://groups.google.com/d/optout.