Puppet 使用主机名作为变量值

Puppet 使用主机名作为变量值

我有这个简单的功能:

define e::x($x = $title) {
  file {$x:
    path => "/tmp/${x}",
    ensure => present,
  }
}

我这样使用它:

e::x {"xxxx":}

但创建的文件是 /tmp/“hostname”,像 debian-vm 之类的。它从不使用正确的值。

我不明白哪里出了问题,有人知道吗?

谢谢。

编辑

因此,经过更多测试后,看起来 $x = $title 不起作用。如果我直接使用 $title,它就可以工作。

这很奇怪,因为我确信我已经在另一台服务器上使用过这种模式,没有任何问题。

这可能与我的 Puppet 版本有关。我在 Debian Squeeze 上运行 Puppet 的打包版本。可能存在错误。

答案1

Debian Squeeze 软件包 Puppet 2.6.2 - 该$title变量不能作为参数的默认值。

根据示例后的注释这里,需要 2.6.5 才能获得预期的行为。

相关内容