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

时间:2015-06-22 21:29:10

标签: nginx puppet

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

每个包/服务/文件资源都按预期工作,现在我将init.pp中的代码移到/manifest/nginx.pp文件中作为类:

class company_nginx {

  ... Various resources

}

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

include company_nginx

它返回错误:

  

错误:无法在节点localhost上找到localhost的类nginx

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

2 个答案:

答案 0 :(得分:1)

清单文件名及其中定义的类必须完全匹配。如果您想要一个类名company_nginx,那么它必须是文件名company_nginx.pp

此要求来自puppet autoloader

答案 1 :(得分:1)

您的班级名称必须有资格让Puppet能够接收它们。

class nginx::company_nginx { ... }

此类将从模块nginx文件manifests/company_nginx.pp加载。

执行include company_nginx会使Puppet认为存在company_nginx中定义的类的实际模块名init.pp