Puppet stdlib keys()函数语法错误

时间:2014-07-22 00:29:25

标签: puppet

我确定我做了一些愚蠢的事情,但我无法找到stdlib keys() function的正确语法,并且无法在互联网上找到任何示例。

以下是我尝试的内容:

file { ["/tmp/file1", "/tmp/file2"]:   # <-- this works as expected
  ensure => present,
}

$hash = {"/tmp/file1" => 1, "/tmp/file2" => 2}
file { keys($hash):                    # <-- syntax error occurs here
  ensure => present,
}

导致此错误:

  

错误:无法从远程服务器检索目录:错误400开启   SERVER:&#39;语法错误:&#39 ;;预期&#39;}&#39;在   节点slonymaster上的/etc/puppet/modules/slony/manifests/master.pp:113

我错过了什么?我使用Puppet 3.6.2和stdlib 4.3.2。

1 个答案:

答案 0 :(得分:1)

你只是在夸大你的表情。这个想法很合理,但你必须采取中间步骤。

$filenames = keys($hash)
file { $filenames: ensure => present }

Puppet只接受文字数组值或变量作为资源标题。