Arrays 如何访问Puppet中节点数组中的每个节点

Arrays 如何访问Puppet中节点数组中的每个节点,arrays,nodes,puppet,Arrays,Nodes,Puppet,我对木偶很陌生,所以我希望你能帮我解决一个很简单的问题 我有一个节点数组,如下所示: $nodesArray = ['abc123.server.domain.net', 'bcd234.server.domain.net', 'cde345.server.domain.net', 'def456.server.domain.net', 'efg567.server.domain.net',

我对木偶很陌生,所以我希望你能帮我解决一个很简单的问题

我有一个节点数组,如下所示:

$nodesArray =   ['abc123.server.domain.net',
            'bcd234.server.domain.net',
            'cde345.server.domain.net',
            'def456.server.domain.net',
            'efg567.server.domain.net',
            'fgh678.server.domain.net',]
我只是尝试使用Puppet的节点定义访问每个节点,以便在每个节点上安装应用程序

$nodesArray.each| $individualNode | {
        node $individualNode {
               exec { 'install app':
                     command =>      '<command to install app>',
               }
        }
 }
$nodesArray.each |$individualNode |{
node$individualNode{
exec{“安装应用程序”:
命令=>'',
}
}
}
尽管尝试了不同的事情,我还是不断地犯错误:

错误:无法分析环境产品:节点abc123.server.domain.net上“individualNode”(文件:/root/script.pp,第59行,第7列)处的语法错误


错误消息指向“node$individualNode{”行,但我看不出我做得有什么不正确?

如果要声明具有相同内容的多个节点,请直接执行此操作:

node 'abc123.server.domain.net',
     'bcd234.server.domain.net',
     'cde345.server.domain.net',
     'def456.server.domain.net',
     'efg567.server.domain.net',
     'fgh678.server.domain.net' {
  exec { 'install app':
    command =>      '<command to install app>',
  }
}
节点'abc123.server.domain.net',
“bcd234.server.domain.net”,
“cde345.server.domain.net”,
“def456.server.domain.net”,
“efg567.server.domain.net”,
'fgh678.server.domain.net'{
exec{“安装应用程序”:
命令=>'',
}
}
但是,请注意,Puppet将最多为每个节点匹配一个节点定义,因此在多个这样的构造中列出任何节点都是无效的


但是,一般来说,我们会将资源声明(如您的
Exec
)放入模块中的类中,然后使用一个或多个可用的机制来指定应用于每个节点的类。问题中提出的方法或多或少是由内而外的。

谢谢@John Bollinger。不过,这个解决方案是有效的我很惊讶通过数组使用节点定义并没有做到这一点。我已经理解了您关于使用类的观点。再次感谢。