David Lutterkort wrote:
> Seeing all those sources for the reminded me a lot of home-grown config
> mgmt systems where you simply store all the modified config files in
> some sort of SCM, organized by some simple principle, like hostname or
> similar and then just copy files around.
> 
> The problem with that organization is that there isn't one scheme that
> fits a wide variety of uses; puppet's solution to that is to make it
> easy to split a machine's configuration into small independent parts
> that can be composed in a variety of ways (mostly inheritance and
> inclusion of classes) to enable a DRY description of the configuration
> of the whole site.
> 
> With the ssh config files, you have to stop decomposing at the
> granularity of files; for other files, you can do that at a more
> fine-grained level (e.g., the host type) My point was that if you can
> describe the parts of the config file that need changing at a more
> granular level, you don't need such an extensive categorization of ssh
> config files.
> 

Point taken, but the number of configuration options available in any 
given application does rise another problem for me;

How can I use and re-use the same /var/lib/puppet/modules/ssh/ directory 
to multiple organizations if I know each of those organizations is going 
to mess with every possible setting available in sshd_config?

In my opinion, you can go three ways:

1) Have files put in the right location and puppet will pick up the 
first hit. This does not mean however you need to put files in 
RedHat/3/, RedHat/4/ and RedHat/5/, because 4 and 5 will be similar, 
just like CentOS/4/ and CentOS/5/, and Fedora (Core) 5 through 10, and 
only RedHat/3/ will have the exemption. Only the exemptions go where 
puppet will pick them up sooner then the more general config file.

2) Do templating, which will provide a good default but requires 
templating the entire array of available configuration settings, which 
in the case of sshd might be doable, but when configuring httpd that way 
certainly doesn't make it more feasible, and since we would abstract the 
configuration settings, we would need to check whether a supplied value 
is even correct for a given setting. In addition, it requires setting 
the variables in a puppet manifest making the manifest more complex, 
less long-term sustainable because of changing configuration options 
across application versions, and is not relocatable.

3) Minimize the management or differentiation in the module and require 
the user of the module to define either an augeas type for use with the 
specific model or override file location settings using subclasses 
(which can be done right now as well BTW, so reducing the number of file 
sources is not a problem).

Which one of these three is the best solution, I don't know. Maybe given 
one situation I'd choose 2) whereas in another situation I might choose 1).

In the end this makes me wonder whether there is such a thing as "one 
SSH module, to rule them all", or whether even modules as simple as an 
SSH module may need to be adjusted for each of the three situations 
mentioned and provided in three-fold.

Any ideas on that?

Kind regards,

Jeroen van Meeuwen
-kanarip

--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to