Hi Andreas,

In my believe that message is from your puppetmaster unable to compile
the manifest because the hiera function is not present on the master.
If you install hiera gem, the functions are not copied to your puppet
functions dir.

I would recommend checking your gem path on the puppetmaster and
confirm the files are present.

> gem env

...
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
     - /root/.gem/ruby/1.8
...


ls  /usr/lib/ruby/gems/1.8/gems/puppet-2.7.12/lib/puppet/parser/functions/*hier*

Should list: -

/usr/lib/ruby/gems/1.8/gems/puppet-2.7.12/lib/puppet/parser/functions/hiera_array.rb
/usr/lib/ruby/gems/1.8/gems/puppet-2.7.12/lib/puppet/parser/functions/hiera_include.rb
/usr/lib/ruby/gems/1.8/gems/puppet-2.7.12/lib/puppet/parser/functions/hiera_hash.rb
/usr/lib/ruby/gems/1.8/gems/puppet-2.7.12/lib/puppet/parser/functions/hiera.rb

On my setup I was able to fix this my manually copying the file to the
puppet libdir:

# copy libs from hiera to puppet
cp /usr/lib/ruby/gems/1.8/gems/hiera-puppet-0.3.0/lib/puppet/parser/functions/*
/usr/lib/ruby/gems/1.8/gems/puppet-2.7.12/lib/puppet/parser/functions

# restart your puppetmaster - if running behind passenger

For me restarting apache was enough

/etc/init.d/apache restart


---
Kind regards,

Martin Willemsma



2012/4/4 Andreas Paul <xorp...@googlemail.com>:
> Hi there,
>
> for some reason I can't use hiera functions in my manifests.
> Here are the relevant config files:
>
> cat /etc/puppet/hiera.yaml
> :hierarchy:
>     - %{environment}
>     - common
> :backends:
>     - yaml
>     - puppet
> :yaml:
>     :datadir: '/etc/puppet/environments/%{environment}/hieradata'
> :puppet:
>     :datasource: data
>
>
> cat environments/dev/hieradata/dev.yaml
> ---
> workers   : - '10.125.127.88'
>
> cat environments/dev/modules/intra3/manifests/wsp.pp
> class intra3::wsp {
>
>   #$workers = [ '12.3.4.5' ]
>   #$workers = $intra3::data::workers
>   $workers = hiera('workers')
>
>   wsp::cfg { "tc6_foobar":
>     remove => false,
>     vhostname => 'test-foobar',
>     worker => $workers,
>     portrange => 121,
>     prodlevel => 7,
>     wwwdir => '/www/foobar.enbw.net',
>   }
>
> pluginsync is enabled on master and client.
> The client picks up changes in the hiera module /lib:
>
> touch dev/modules/hiera/lib/bla.rb
>
> results in:
>
> notice: Ignoring --listen on onetime run
> info: Retrieving plugin
> notice: /File[/var/lib/puppet/lib/bla.rb]/ensure: defined content as
> '{md5}d41d8cd98f00b204e9800998ecf8427e'
> info: Loading downloaded plugin /var/lib/puppet/lib/bla.rb
> err: Could not retrieve catalog from remote server: Error 400 on SERVER:
> Unknown function hiera at
> /etc/puppet/environments/dev/modules/intra3/manifests/wsp.pp:5 on node
>
> puppet-2.7.12
>
> gem list hiera
> hiera (0.3.0)
> hiera-puppet (0.3.0)
>
>
> Any ideas?
>
> --
> 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/-/BcTVaGLa3s4J.
> 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.



--

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
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