I'm actually having this exact same problem. In my hiera.yaml file I had a 
hierarchy including two facts and then some strings derived from facter 
facts.

When I run puppet agent --test the hiera vars in files named for the node's 
$fqdn, etc. aren't found, but if I puppet apply specifying my site.pp 
manifest the variables contained in yaml files like $fqdn.yaml are found 
and applied properly. I've gone as far as testing this with masters running 
3.0 and 2.7 but haven't seen any difference. For the sake of clarity, the 
agent is being run on the master.

I've tried several permutations of specifying a hierarchy including quoting 
"%{fqdn}",  using no quotes, using the syntax for a top-level variable 
${::fqdn}, etc. Each time running hiera from the CLI works as expected but 
the master can't be coerced to behave as expected.

A bit of pastebin
puppet apply (which works): http://pastebin.com/E5iBtt2t
puppet agent --test (doesn't work): http://pastebin.com/GsA81Eyx

On Thursday, 6 December 2012 18:31:09 UTC-5, Pete wrote:
>
> On Dec 7, 2012 12:08 AM, "jcbollinger" <john.bo...@stjude.org<javascript:>> 
> wrote:
> >
> >
> >
> > On Tuesday, December 4, 2012 8:10:00 PM UTC-6, Pete wrote:
> >>
> >>
> >> One last question.
> >> I use a node level variable to specify the location of a node.
> >> I use this for setting variables specific to that location like 
> different puppet master ip and nagios ip for the office and such.
> >> I want to use that variable in hiera for the same purpose.
> >> I have this in my hiera.yaml file.
> >>
> >> ---
> >> :hierachy:
> >>   - %{::clientcert}
> >>   - %{::environment}
> >>   - %{location}
> >>   - virtual_%{::is_virtual}
> >>   - common
> >> :backends: yaml
> >> :yaml:
> >>   :datadir: /etc/puppet/hieradata
> >>
> >> it gets data from the common.yaml file but is seems to not get anything 
> from any of the other files.
> >> it's definitely using the datadir because thats where the common.yaml 
> file is as well as the rest of the data files.
> >> Am I missing something?
> >>
> >
> > You are missing that node variables are not globals, and in fact don't 
> even have qualified names.  I strongly suspect that that is why Hiera is 
> not seeing them.
>
> That explains a why location isn't seen.
>
> I discovered later that hiera didn't seem to be using the facts either...
>
> Do I need to  do something else to allow hiera to see facts?
> I am assuming if I can use facts I will work out how to set location as a 
> fact and just use it that way.
>
> As an aside, are ENC variables global?
> I have been tempted to use my freeipa server as an ENC using ldap.
>
> I have also been tempted to have a go at writing an ldap backend for hiera 
> but that's another story...
>
> >
> > There are several potential workarounds, among them:
> > set the needed variable(s) at top-level, based on some sort of 
> conditional
>
> I was under the impression that node level variables were top level 
> variables but I am guessing I am wrong. Time to find some docs I guess. :)
>
> > push all the contents of your node blocks into classes, so that the 
> variables in question become class variables
>
> I am going to assume from that class variables are global because they 
> have qualified names?
>
> > instead of creating a separate hierarchy level with a data file for each 
> value of (say) $environment,use a hash of hashes in the level below, with 
> the $environment values as the outer hash keys
> >
> > Cheers,
> >
> > John
> >
> > -- 
> > 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/-/1Ajo2OXHPC4J.
> >
> > To post to this group, send email to puppet...@googlegroups.com<javascript:>
> .
> > To unsubscribe from this group, send email to 
> puppet-users...@googlegroups.com <javascript:>.
> > For more options, visit this group at 
> http://groups.google.com/group/puppet-users?hl=en.
>  

-- 
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/-/Gjgrw66TRWkJ.
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