Hi,

I'm trying to do the exact same thing without success.  If I understand the 
Hiera documentation correctly [1], this should be possible (although, I may 
be misunderstanding this documentation).  The only workaround I have 
currently is to turn the top-scope variable (provided by my ENC) into a 
fact using something like:

file { "/etc/puppetlabs/facter/facts.d/group.txt":
  content => "group=$group",
}

However, this has it's disadvantages, because the $::group fact doesn't 
become available until after the puppet run that declares the file resource.

Any ideas?

Thanks,

Josh

[1] http://docs.puppetlabs.com/hiera/1/variables.html

On Friday, November 22, 2013 12:34:24 PM UTC-5, Matthew Ceroni wrote:
>
> I am trying to use an ENC-set top-scope variable in my Hiera hierarchy. 
> However it doesn't seem to be working.
>
> Here is what is returned by my ENC script (it is the foreman ENC script) 
> for a node:
>
> parameters: 
>   san_rafael-spacewalk: mai01-sprxy-02v
>   puppet_ca: mai01-pmstr-02v
>   group: engineering
>   spacewalk_type: site
>   san_rafael_dmz-spacewalk: mai01-sprxy-01v
>   hostgroup: base/production/engineering/quality_assurance/locked
>   san_rafael_dmz-proxy: mai01-dprxy-01v
>   spacewalk_host: mai02-swalk-01v
>   santa_rosa_dmz-spacewalk: mai02-sprxy-01v
>   root_pw: $1$ubWDPsM+$lzyZdN91QCk6dZAhMXBlM/
>   foreman_env: production
>   santa_rosa_dmz-proxy: mai02-dprxy-01v
>   activation_key: 5-839beb8c567b98c0720db37f19ecb64d
>   puppetmaster: mai01-pmstr-02v
> environment: production
> classes: 
>   security::access: 
>   security::users: 
>
> Then in my hiera.yaml file I have:
>
> ---
> :backend:
>   - yaml
> :hierarchy:
>   - %{::clientcert}
>   - %{::group}
>   - %{::dc_location}_%{::is_dmz}
>   - %{::operatingsystem}
>   - common
>
> :yaml:
>   :datadir: '/var/lib/hiera'
>
> Then within /var/lib/hiera I added an engineering.yaml file. But it 
> doesn't seem to be referenced when Hiera goes through the hierarchy. One 
> way I verified this (to ensure something else funky wasn't going on) is 
> that i purposely put an error in the engineering.yaml file and Puppet runs 
> without issue. 
>
> Is it not possible to use a variable returned from ENC?
>
> Thanks
>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/0f5dd617-8144-4c58-9c0d-ac31e3886cbc%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to