On Tuesday, December 18, 2012 9:33:13 AM UTC-8, Ellison Marks wrote:
>
> You're looking for the hiera_include() function, I believe. It's 
> undocumented in the official docs, which is a shame, but I'll try to 
> describe it.
>
> Your node definition would look something like this:
>
> node default {
>   hiera_include('classes')
> }
>
> This instructs every node to look up the classes variable in hiera. It 
> doesn't *need* to be named classes, but I like that name. This variable 
> should evaluate to a list of strings. Each of these strings will then be 
> treated as a class name and puppet will attempt to 'include' it. You make 
> your hierarchy so that each node gets an appropriate list.
>
>
>

Hmm. Thanks for the explanation. It sounds *potentially* useful. However, 
still one problem:
I dont think it's additive.

In other words, you cant have a truly modular flow in hiera, where you have
the following pseudocode

$(allhosts )  => gets 'classes' list from common.yaml

$(dbmachines)  => gets additional classes from dbhosts.yaml

$(webmachines) => gets additional classes from webhosts.yaml


If you want a host that is both a db machine, AND a webserver, you need to 
create a new hiera file,
dbandwebhost.yaml
and then make sure that all machines in that context, get pointed to that 
specific file, rather than getting to merge things.


The only method I see that uses the "pure" hiera_include method you show 
above, and still allows for mix-and-max class includes, would be to 
handcraft individual

FQDN.yaml

files for each and every host.  ?




-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/MSluxgsFuWYJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to