I'm trying to use create_resources to create a series of files with semi-custom content based on a template.
This is what I have: foo.conf.erb: Name "<%= name %>" WorkingDir "<%= working_dir %>" ... a bunch of static entries YAML: configs: config1: Name: app1 WorkingDir: /var/app1 config2: Name: app2 WorkingDir: /var/app2 ... config100: Name: app100 WorkingDir: /var/app100 manifest: class app { create_resources(app::virtualApps, hiera('configs')) } define app::virtualApps() { file {"/etc/apps/$app.conf": owner => root, group => root, mode => 644, content => template("app/foo.conf.erb" } I know this is not correct. I am missing at least one important concept here. What I am stuck on is how, using create_resources, I can reference the parameters named in the YAML config so that I end up with a config file on the file system for each. My understanding of create_resources was that this would be a good use for it, in that it will call app::virtualApps() once for each hash defined under "configs" in the YAML file, which should result in the structure I want. What I am not getting is what the datastructure looks like that is being provided to app::virtualApps() and how you can reference those parameters, both in the define AND the associated template. I'd like to end up with: /etc/apps/app1-100.conf with the contents that look like: Example: /etc/apps/app1.conf: Name "app1" WorkingDir: "/var/app1" <bunch of static entries that are the same in each file> -- 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 puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.