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