Is Include 和 Class 都需要使用 Puppet 模块

Is Include and Class Both Needed for using Puppet Module

我正在尝试使用 ntp puppet 模块。说明书上说用"include"安装启用,然后用"class"配置参数。 "include" 还需要吗?

Setup
Beginning with ntp

include ntp is enough to get you up and running. To pass in parameters specifying which servers to use:

class { 'ntp':
  servers => [ 'ntp1.corp.com', 'ntp2.corp.com' ],
}

Usage

All parameters for the ntp module are contained within the main ntp class, so for any function of the module, set the options you want. See the common usages below for examples.
Install and enable NTP

include ntp

Change NTP servers

class { 'ntp':
  servers => [ 'ntp1.corp.com', 'ntp2.corp.com' ],
}

我很困惑,如果我需要在使用 "class { 'ntp':" 之前始终使用 "include ntp",或者如果不使用 "include ntp" 并且只使用 "class { 'ntp':" 就足够了在我的 site.pp

中使用模块时

我的问题是:

1) 什么时候需要只使用 "include" 而不使用 "class" 语句...这是否仅在我们使用模块但未指定任何参数时才需要?

2) 是否允许排除"include"语句,只使用"class"语句?即不使用 "include" 语句是否有效,因为 class 语句本质上与 include 语句做同样的事情,但也会包含配置的参数? "include" 语句不是多余的吗?

3) 我什么时候应该同时使用 "include" 语句和 "class" 语句?

我看不到任何需要使用 "include" 语句的情况,因为 class 语句与 include 语句的作用相同。

这在 https://puppet.com/docs/puppet/latest/lang_classes.html#reference-4789 中有详细记录。

回答您的问题

  1. 是的,你只需要在指定参数时使用class
  2. 是的,如果您已使用 class 进行声明,则不应再使用 include
  3. 进行声明
  4. 不要在同一清单中同时使用 includeclass。小心,您可以在多个清单中混合使用多个 include 声明和一个 class 声明,但在单个清单中,只需使用其中一个