Class puppet nodes类中的继承是否是可接受的替代方案?

Class puppet nodes类中的继承是否是可接受的替代方案?,class,inheritance,include,puppet,Class,Inheritance,Include,Puppet,在阅读了多个样式指南并尝试在我的节点定义()中不使用继承之后,我想知道在puppet中包含类而不使用继承的常见方法是什么 我一直在尝试以下节点定义,但似乎不起作用: # in module 'baseclass' # baseclass.pp class baseclass { include xclass include yclass include zclass } # servernode01.pp node 'servernode01' { include basecl

在阅读了多个样式指南并尝试在我的节点定义()中不使用继承之后,我想知道在puppet中包含类而不使用继承的常见方法是什么

我一直在尝试以下节点定义,但似乎不起作用:

# in module 'baseclass'
# baseclass.pp
class baseclass {
  include xclass
  include yclass
  include zclass
}

# servernode01.pp
node 'servernode01' {
  include baseclass
} 
其中
xclass
yclass
zclass
是功能性的傀儡类,将它们包含在节点
servernode01
中会产生所需的状态(即资源应用于节点)

我的问题是:
  • 在类中包含类是继承的好选择吗
  • 作为继承的替代方法,我使用的方法中是否存在一些问题
  • 我问第二个问题,因为包含
    baseclass
    的节点似乎没有收到
    xclass
    yclass
    zclass
    中定义的资源

    我的最终目标是有一个基类来实现我指定的最低要求

  • 是的,木偶中的构图比继承更好
  • 你的例子应该行得通

  • include基类
    的替代方法是
    class{'baseclass':}
    。如果您想使用参数,您需要后者,并且还必须考虑到您可以多次使用
    include
    ,但不能使用
    语法,因为puppet会抱怨重复的类定义。

    官方puppet文档明确指出,继承应该真正“谨慎”地使用。实际上,他们准确地说出了两种情况:

    • 当您想要覆盖父类中定义的资源的参数时
    • 如果要从标准参数值的参数类继承


    因此,是的,这显然更好,即使有官方的祝福:)

    所有的优点。在克雷格·邓恩(Craig Dunn)的事实标准中,这一切都相当正式。