傀儡和明显的循环

我如何访问木偶清单中的数组元素,即创build一个for / while循环? 比方说,我在我的nodes.pp

Name [ 'testserver', 'floor1', 'floor3' ], 

我如何迭代,以便当我定义我的文件资源时,我可以遍历每个,并确保每个元素存在正确的文件资源?

谢谢丹

传统意义上没有办法做一个循环,但你可能仍然可以实现你要做的事情。 当用作资源标题时,数组将自动展开。

所以对于一个简单的例子,你只需要一个数组就可以了

 $packages = [ 'httpd', 'mysql', 'puppet' ] 

然后在资源中使用,如:

 package { $packages: ensure => installed, } 

对于更复杂的情况,您可以使用定义的types。 我不太清楚你要用你的例子去哪里 – 让我知道这是否对你的用例没有意义。

[ 'testserver', 'floor1', 'floor3' ]说,你发送一个[ 'testserver', 'floor1', 'floor3' ]的数组,你需要做的是在/etc/foo/testserver上创build一个文件对于第一个元素),然后运行一个exec来设置一旦完成。

 define datafiles { file { "/etc/foo/${title}": ensure => present, content => $title, } exec { "setup-${title}": command => "/usr/local/bin/something -a /etc/foo/${title}", require => File["/etc/foo/${title}"], } } 

然后,使用定义types的标题中的数组将扩展它,为数组的每个成员创build文件和exec资源。

 $names = [ 'testserver', 'floor1', 'floor3' ] datafiles { $names: }