Hi Florian. great and smart method. But I've found a problem. If i have a hash with two dimensions I'm losing the information of the first dimension. Explained:
yaml: --- routers: router1: ip: 1.2.3.4 ports: 1: foo: true bar: false 2: foo: false bar: false router2: ip: 5.6.7.8 ports: 1: foo: true bar: true 2: foo: false bar: true manifest: create_resources('foo::map',$routers) } define foo::map ($ip,$ports) { create_resources('ports::map',$ports) } define ports::map ($foo,$bar) { } When catalog reaches ports::map, catalog have lost information about original router name. Is it correct? Or am I missing something? Thanks in advance. El jueves 15 de marzo de 2012 21:58:01 UTC+1, Florian Koch escribió: > > 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/-/6G9ZMTBEku4J. 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.