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 <
> [email protected]> 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 [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.