Hi Josh,
Here's what we found. I would love to hear about other approaches because 
we're still debating and building out our service.

1. Yes it's a great way to escape from parameterized classes.  If you ever 
needed to 'include' a class in two places, parameterized classes makes this 
difficult or impossible.
2. I don't recommend using automatic hiera lookup. There are some subtle 
gotchas in it especially when using hashes in hiera.  In my office our 
recommended practice is as almost as you wrote it, class bar ($foo = 
hiera('bar::foo')) { ... }.  Hiera automatic lookup is a good way to allow 
an easier transition from parameterized classes so it may still be a good 
choice for you.  As Ashley points out, read the latest docs!
3. If you explicitly use the hiera() call, you'll get nice "variable not 
found" messages when you make a mistake.  Clear error messages are rare in 
puppet so don't underestimate their value.
4. Don't over complicate your hiera tree.  It's not the place for 
everything.  Pick your largest collection of system-to-system variation and 
put that in hiera.

In our office we identified three variations that we *wanted* to put in 
hiera:
1. Variation between servers *within* an instance of our service
2. Variation between similar servers across different instances of our 
service (eg. Identity of the zookeeper in production, staging & QA)
3. Version differences between instances of our service.  IE. use hiera to 
manage the pipeline of releases.

What we *actually* put into hiera was only #2.  When #1 started creeping 
into hiera things got very messy. #1 is better handled by managing server 
Roles.  #3 should never go into Hiera - but I'm still arguing this point 
with my co-workers.

Caveate Emptor: We're still hemming and hawwing about all this.
Cheers, Larry Fast

 

-- 
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 post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to