如何用 puppet 设置目录树?

如何用 puppet 设置目录树?

我有几个目录,我想用 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 吗?

答案1

嗯。我是这样解决的:

$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';
}

我确保 subdirtemplates 包含我想要的每个实例中的所有目录。这对我来说是有效的,但也许有人仍然有更好的答案来设置目录树,以防您没有模板树。

相关内容