I am new to puppet and am trying to figure out variable scoping. I have a
test module that I am using for this and it looks like this:
manifiests/init.pp:
class test {
include test::params
file { 'testfile' :
path => "/tmp/testfile",
content => template("test/testfile.erb"),
}
}
manifests/params.pp:
class test::params {
$p1 = hiera('param1')
$p2 = hiera('param2')
}
templates/testfile.erb:
this is the first parameter: <%= @p1 %>
this is the second parameter: <%= @p2 %>
global.yaml:
---
param1: "this is the first one"
param2: "this is the second one"
Based on what I am seeing in the ProPuppet book (the discussion of the
puppet module in Chap. 2, pp69-70), this should work. However, the values
are not being inserted in the template. In order to get them in, I have to
add something like this to the init.pp manifest:
$a = $::test::params::p1
$b = $::test::params::p2
and reference @a and @b in the template.
So the question is: Am I missing something or is there an error in the
ProPuppet example?
If I need to add the $a = …. and $b=… lines to the init.pp, what, if any is
the advantage to having a params.pp manifest. I could just put the hiera()
calls in init.pp.
thanks for your patience.
--
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 view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/abcf9bb6-b3a2-483d-8655-3b6a6eed8196%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.