为什么木偶不能find我定义的资源?

我在/etc/puppet/modules/autofs/manifests/mount.pp(来自https://forge.puppetlabs.com/pdxcat/autofs上的pdx-cat / autofs模块)中有一个已定义的资源。

我在/etc/puppet/modules/sheffield/manifests/autofs/net.pp中有一个模块,它试图使用autofs :: mount定义的types。

class sheffield::autofs::net { include ::autofs autofs::mount { '/net': map => '', options => '-hosts', } } 

但是,当客户端试图抓取目录,我得到以下错误;

 Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type autofs::mount at /etc/puppet/modules/sheffield/manifests/autofs/net.pp:7 on node rhel6test.shef.ac.uk 

有任何想法吗? 我想也许这是不是自动加载types的问题,因为它具有相同的名称(autofs)作为sheffield :: autofs中的一个子类,所以我尝试重命名sheffield :: auto-fs并没有什么区别。

我试图从/ etc / puppet / autofs / manifests复制mount.pp到/ etc / puppet / sheffield / manifests / autofs /中,并且确实find了资源types,但是因为其他缺less的依赖关系mount.pp(显然,这不是一个很好的解决scheme)。

由于include ::autofs没有提供任何错误,因此您应该能够在define中使用相同的::前缀:

 class sheffield::autofs::net { ::autofs::mount { '/net': ... } } 

如果不起作用,则可能是模块path或其他相关设置中存在错误。

include ::autofs行实际上是不需要的。 mount-define包含所有必需的类。

我有同样的问题:自定义资源定义,清晰的类,列在工头。

对我来说,问题原来是metadata.json格式不正确,缺less“source”属性。 值得检查,如果没有其他东西似乎解决了这个问题!