我正在努力弄清为什么发生这种情况。以下代码不会写变量$ group,但是会在模板中写数组$ users。
define bar::foo(
String $group = $title,
Array $users
) {
file {'/tmp/my.file':
ensure => file,
content => epp('bar/test.epp'),
}
}
使用如下所示的epp模板:
group: <%= $group %>
users: [<%= $users.map |$x|{ "'${x}'"}.join(', ') %>]
如果我将变量传递给模板,则$ group将被写入“ my.file”。
define bar::foo(
String $group = $title,
Array $users
) {
file {'/tmp/my.file':
ensure => file,
content => epp('bar/test.epp', { group => $group }),
}
}
变量$ users如何出现在模板的作用域中,而$ group不在第一个示例中?
答案 0 :(得分:0)
如果您使用的是epp并想获取$ groups变量,则必须在模板中编写变量$ :: bar :: foo :: groups的全部范围。