将资源包装在自定义 class 中并调用 class?

Wrap resources inside custom class and invoke class?

我正在使用 Puppet 3.0。我尝试使用现有的 NGINX 模块,但遇到了一个似乎没有答案的问题。我已经开始自己实现 NGINX 模块来处理我的确切要求。

每个 package/service/file 资源都按预期工作,现在我将代码从 init.pp 移到 /manifest/nginx.pp 文件中作为 class:

class company_nginx {

  ... Various resources

}

现在我试图将这个 class 包含在 init.pp

include company_nginx

它 returns 一个错误:

Error: Could not find class nginx for localhost on node localhost

我错过了什么步骤或概念?如何在 init.pp 文件中调用此 "class" 以获取调用的资源并配置系统???

清单文件名和其中定义的 classes 必须完全匹配。如果你想有一个 class names company_nginx 那么它必须在一个 file names company_nginx.pp.

此要求来自puppet autoloader

您的 class 名称必须符合 Puppet 的要求才能提取它们。

class nginx::company_nginx { ... }

这个 class 将从模块 nginx 文件 manifests/company_nginx.pp 加载。

执行 include company_nginx 将使 Puppet 假设有一个实际的模块名称 company_nginxinit.pp 中定义的 class。