我有几个目录,每个我想与puppet设置相同的子目录。
这显然不起作用:
$inst = ['/i1', '/i2', '/i3'] $subdirs = ['subdir1', 'subdir2'] file {"${inst}/${subdirs}": ensure=>directory, recurse=>true, purge=>true, force=>true, owner=>$username, group=>$group, source=>"puppet:///modules/mymodule/subdirtemplates/${subdirs}/", mode=>'644'; }
没有办法连接第一个数组的每个成员与第二个数组的每个成员。
在任何正常的编程语言中,你会使用两个for循环,或者一些内置的映射函数或者其他东西,但是在puppet中? 我必须迁移到新的Ruby DSL吗?
哼。 我这样解决了它:
$inst = ['/i1', '/i2', '/i3'] #$subdirs = ['subdir1', 'subdir2'] file {$inst: ensure=>directory, recurse=>true, purge=>true, force=>true, owner=>$username, group=>$group, source=>"puppet:///modules/mymodule/subdirtemplates/", mode=>'644'; }
我确信每个子模板都包含了我想要在每个实例中使用的所有目录。 它适用于我,但也许有人仍然有一个更好的答案设置目录树,如果你没有一个模板树。