如何使用puppet将值从继承类传递给基类?
您可以在下面看到我的试用版的简化代码。
class executor::app($base_dir = "/usr/local",
$run_command = undef,
$prefix_naming = undef) {
}
class app1(
$base_dir = ::app1::params::base_dir,
$prefix_naming = "reader",
$run_command = " ") inherits executor::app{
}
答案 0 :(得分:1)
好的,对于初学者,我们假设你有这些类的模块格式。如果没有,那么这应该是第一笔业务。
其次,避免继承。几乎总有一种更好的方法。特别是不要跨模块继承。关于唯一一次我认为它有用的是默认类参数。
类app1上的base_dir将不会获取默认值,除非该类继承cea :: params :: base_dir(leading :: not needed)。同样,不应该跨模块。 app1 :: params要好得多 - 或者只是放入一个合理的默认值,并且不需要一起继承参数。
对于您的实际问题,如果您想在另一个类中获取变量,您可以引用它。请记住,puppet不保证编译顺序,所以你应该告诉它首先评估另一个类:
class executor::app {
Class['app1'] -> Class['executor::app']
$other_app_var = $app1::base_dir
}
或者将此数据放入hiera并查找值。