Hi all,

I'm hoping to get community feedback on dealing with external data or
configuration that needs to be shipped with Puppet. Pull request #1442 (
https://github.com/puppetlabs/puppet/pull/1442) added support for managing
local users and groups by using libuser, solving issue 7911 (
http://projects.puppetlabs.com/issues/7911). However to make libuser work
in a consistent manner it has to supply a specific libuser.conf config
file. We weren't able to come to a decision onto where this file should
ultimately go and I was hoping to collect some outside opinion.

The ideal solution for this sort of thing is to use the FHS concept of an
application datadir, eg /usr/share/puppet. Installing Puppet would drop the
libuser.conf in a path like /usr/share/puppet/provider/libuser.conf and
Puppet would check $datadir/provider/libuser.conf for that configuration
file. Shipping configuration data in lib/ is definitely ideal and this
would address that problem.

While this approach works swimmingly when puppet is installed by hand or by
package, but this completely breaks down when installing via a gem. Since
gems are entirely self contained in a directory the $datadir location would
have to change for gems. In short, any sort of datadir solution that would
mesh with gems fails with normal packages.

It's foreseeable that we might have more configuration like this; data that
shouldn't be edited by the end user that Puppet needs to run. Stuffing
files into lib/ isn't a viable solution in the long run; does anyone see a
better way of addressing this?

-- 
Adrien Thebo | Puppet Labs

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to