我有这个简单的function:
define e::x($x = $title) { file {$x: path => "/tmp/${x}", ensure => present, } }
我这样使用它:
e::x {"xxxx":}
然而,创build的文件是/ tmp /“hostname”,就像debian-vm或其他东西。 它永远不会使用正确的值。
我不明白什么是错的,有没有人有任何线索?
谢谢。
编辑
所以,经过一些更多的testing,看起来像$ x = $标题不起作用。 如果我直接使用$标题它的作品。
这很奇怪,因为我确定我已经在另一台服务器上使用了这种模式,没有麻烦。
也许这与我的Puppet版本有关。 我在Debian Squeeze上运行Puppet的打包版本。 可能有一个错误。
Debian Squeeze软件包Puppet 2.6.2 – $titlevariables不会作为参数的默认值。
根据这个例子之后的注释,需要2.6.5来获得预期的行为。