Puppet使用主机名作为variables值

我有这个简单的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来获得预期的行为。