有没有办法(a)接受类或资源定义的任意参数,然后(b)将这些参数传递给另一个类或资源定义?
我经常发现我编写的是一个对原生类型或第三方模块的薄包装。例如:
define myconfigfile {
file { "/path/to/$name":
owner => lars,
group => lars,
...
}
}
也就是说,myconfigfile
实际上是具有已知前缀的一组文件资源的简写。我实际上希望myconfigfile
接受与资源类型相同的参数file
(例如
content
,source
等),但我想避免:
define myconfigfile (
$content = undef,
$source = undef
) {
...
}
当只有一个或两个参数时,这种方法可以正常工作,但如果我尝试用大量参数包装一个参数化类,它就会变得难以管理。