Hi All,
Very interesting topic. Here's what I'm using:
---
:hierarchy:
- %{fqdn}
- %{role}
- %{group}
- %{osfamily}
- common
:backends:
- yaml
- puppet
:yaml:
:datadir: /etc/puppet/environments/%{environment}/data
:puppet:
:datasource: data
We don't have any uses of %{fqdn} but in the abstract I like having
that level of granularity. Role is what the system does like
"production-webserver" this the main makes-it-go bit. Group is the
group of humans it's for and handles things like access control, sudo,
and to a lesser extent software that a group wants on all their
systems. We have both Linux and FreeBSD in production, osfamily lets
us make some important distinctions in the way each OS handles some
basic things that would otherwise be in "common" which has the obvious
meaning.
All production systems use the "production" environment other
environments are for testing and development. Admins can create new
testing environments arbitrarily simply by checking out whatever
version of the git repo they're working on in /etc/puppet/environments
in practice here this tends to be <username>-test or some variant.
In terms of keeping data and code decoupled in version control we're
not doing anything special, the "master" branch is always production
and the puppet masters pull from a central repo every 5min with all
development done branches, once the branch seems to work it's merged
into master.
We do use git submodules to track both locally developed puppet
modules and some community modules we pull from github. It's kind of
a pain, but the least pain of a few alternatives we've tried. If you
need strong separation of hiera you could put it in a separate repo
and use submodules to bundle them together..
-Jon
--
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.