在傀儡語中,沒有沒有循環。
但是你可以在同一時間使用一個數組,而不是一個簡單的字符串爲標題,並宣佈了很多資源,以相同的PARAMS:
$b = '/opt/app'
file { [ "$b/app1", "$b/app2" ]:
ensure => directory,
owner => 'root',
group => 'root',
mode => 0644,
}
您也可以聲明同一類型不同的許多資源
file {
[ "$b/app1", "$b/app2" ]:
ensure => directory,
owner => 'root',
group => 'root',
mode => 0755;
[ "$b/app1/secret", "$b/app2/secret" ]:
ensure => directory,
owner => 'root',
group => 'root',
mode => 0700;
}
在的具體情況下:通過用;
,這比重複file
和{
S和}
S比緊湊一個位結束的每個資源PARAMS文件,你可以設置一個源和使用遞歸:
file { "/opt/app":
source => "puppet:///appsmodule/appsdir",
recurse => true;
}
(這將需要具有目錄結構的源傀儡作爲源使用)
可以define a new resource type重用的一部分帕拉姆多次:
define foo {
file {
"/tmp/app/${title}":
ensure => directory,
owner => 'root',
mode => 0755;
"/tmp/otherapp/${title}":
ensure => link,
target => "/tmp/app/${title}",
require => File["/tmp/app/${title}"]
}
}
foo { ["app1", "app2", "app3", "app4"]: }
木偶2.6開始,有一個Ruby DSL提供具有所有功能循環,你可以問:http://www.puppetlabs.com/blog/ruby-dsl/(我從來沒有使用過它,不過)。在Puppet 3.2中,他們引入了一些experimental loops,但是這些功能可能會在更高版本中更改或消失。
謝謝!如何得到這個工作:file {[X,Y]:ensure = link,target => [X1 + X,Y1 + Y]}? – user425720
你可以使用一個定義。給我的回答添加了一個例子 – freiheit
啊,完美。謝謝! – user425720