Hi Florian,
Interesting post. I was planning the same sort of approach for apache
vhosts with hiera and create_resources. This is good proof that the
idea works.
Are you using this approach in other modules as well, if so which?

Regards,

Martin

2012/3/16 Gary Larizza <g...@puppetlabs.com>:
> Ahh,
>
> Good catch - thanks for replying back with the fix
>
> -Gary
>
>
> On Fri, Mar 16, 2012 at 7:58 AM, Florian Koch
> <florian.koch1...@googlemail.com> wrote:
>>
>> Hi Gary,
>>
>> hm for other classes it works , so i think the puppet backend is not
>> needed
>>
>> (https://github.com/ripienaar/hiera-puppet/commit/a7350529a99e5d1bad8b03749661f3f4c7f00216),
>> the problem is the define, i guess that a define won't set $module_path
>> correct, the hiera cass from the class tocat::instance works perfect.
>>
>> But i have found better solution, i use create_resources to build the
>> defines, works really smart
>>
>>
>> class tomcat::instance{
>>
>> $instances = hiera('tomcat_instances')
>>
>>         create_resources('tomcat::installer',$instances)
>> }
>> define tomcat::installer ($user,$group,$basedir,$logdir,$name){ ....}
>> ---
>> tomcat_instances:
>>         crowd1:
>>                 name: 'cr1'
>>
>>                 basedir: '/srv'
>>                 logdir: '/var/log'
>>                 user: 'crowd'
>>                 group: 'crowd'
>>
>>         crowd2:
>>                 name: 'cr2'
>>
>>                 basedir: '/srv'
>>                 logdir: '/var/log'
>>                 user: 'crowd'
>>                 group: 'crowd'
>>
>>
>> rgds Florian
>> Am Donnerstag, 15. März 2012 21:33:17 UTC+1 schrieb Gary Larizza:
>>>
>>> Hi Florian,
>>>
>>> I believe since $calling_module is a variable out of Puppet and not
>>> Facter, that you will need to ALSO setup the Puppet backend, in addition to
>>> the YAML backend, in the hiera.yaml file so Hiera can get its value.
>>>
>>> On Fri, Mar 16, 2012 at 6:47 AM, Florian Koch
>>> <florian.koch1...@googlemail.com> wrote:
>>>>
>>>> Hi,
>>>>
>>>> i have some trouble with hiera and  %{calling_module}.
>>>>
>>>> i have:
>>>>
>>>> class tomcat::instance{
>>>>
>>>>         $instances = hiera('tomcat_instances')
>>>>
>>>>         tomcat::installer{$instances:}
>>>>
>>>> }
>>>>
>>>> define tomcat::installer {
>>>>
>>>>         require 'tomcat'
>>>>
>>>>         $instance_opts = hiera($name)
>>>>
>>>>         $tomcat_user = $instance_opts[user]
>>>>         $tomcat_group = $instance_opts[group]
>>>>         $basedir = $instance_opts[basedir]
>>>>         $logdir = $instance_opts[logdir]
>>>>         $tomcat_name = $instance_opts[name]
>>>>
>>>>
>>>>         $tomcat_version='6'
>>>> ...
>>>> }
>>>>
>>>> i specify the tomcat names in a hiera file and run the define wit the
>>>> names as array (so they get executed for each name)
>>>>
>>>> '/var/lib/environments/test/hieradata'/tomcat/crowd.yaml
>>>>
>>>> ---
>>>> tomcat_instances:
>>>>         - crowd1
>>>>         - crowd2
>>>>
>>>>
>>>> crowd1:
>>>>         name: 'crowd1'
>>>>         basedir: '/srv'
>>>>         logdir: '/var/log'
>>>>         user: 'crowd'
>>>>         group: 'crowd'
>>>>
>>>> crowd2:
>>>>         name: 'crowd2'
>>>>         basedir: '/srv'
>>>>         logdir: '/var/log'
>>>>         user: 'crowd'
>>>>         group: 'crowd'
>>>>
>>>> my hiera.yaml
>>>> ---
>>>> :hierarchy:
>>>>     - %{calling_module}/%{fqdn}
>>>>     - %{hostbasename}
>>>>     - %{domain}
>>>>     - common
>>>> :backends:
>>>>     - yaml
>>>> :yaml:
>>>>     :datadir: '/var/lib/environments/%{environment}/hieradata'
>>>>
>>>>
>>>> if i wrote the crowd.yaml content in the common.yaml all works, if its
>>>> in the module subdirectory, puppet can not find the data from the hiera
>>>> lookup in the tomcat::installer, but the call from the tomcat::instance
>>>> class works, i get the right tomcat names in the error.
>>>>
>>>> any idea?
>>>>
>>>> rgds Florian
>>>>
>>>> --
>>>> 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/-/ZjdL5rHQxBYJ.
>>>> 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.
>>>
>>>
>>>
>>>
>>> --
>>>
>>> Gary Larizza
>>> Professional Services Engineer
>>> Puppet Labs
>>>
>> --
>> 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/-/c8Qv0i9cwEUJ.
>>
>> 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.
>
>
>
>
> --
>
> Gary Larizza
> Professional Services Engineer
> Puppet Labs
>
> --
> 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.

-- 
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