我正在使用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文件中调用此“类”以获取调用的资源并配置系统???
答案 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
。