我创建了一个名为“ learn-tomcat”的模块,它有一个名为tomcat的类(位于init.pp中)。 当我尝试在节点定义中包含此类时,它不起作用,以下所有组合均引发错误,组合为:

include learn-tomcat::tomcat
include learn-tomcat
include tomcat
include ::tomcat

错误与上述组合相同:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class

现在,当我将模块目录learning-tomcat重命名为tomcat时,接下来就可以开始工作了!

include tomcat
include ::tomcat
include tomcat::tomcat

现在我对一些事情感到困惑:

  • 尽管Puppet在创建时将模块的名称强制为USERNAME-MODULENAME-创建后应该重命名吗?
  • 我找不到相关文档,但是这里到底发生了什么?

===============>>#1 票数:3 已采纳

在这里,您可以对puppet中的名称空间和范围进行全面的解释。

根据文章中的示例:

name:                   file path:
apache                  <modulepath>/apache/manifests/init.pp
apache::mod             <modulepath>/apache/manifests/mod.pp
apache::mod::passenger  <modulepath>/apache/manifests/mod/passenger.pp

因此,根据您的情况,您还可以执行以下建议之一:

  1. init.pp中的init.pp learn-tomcat模块中,将tomcat类重命名为init.pp learn-tomcat ,然后通过以下方式将其实例化:

    include learn-tomcat

  2. 将文件init.pp重命名为tomcat.pp ,然后通过以下方式将其实例化:

    include learn-tomcat::tomcat

  ask by Vishal Biyani translate from so

未解决问题?本站智能推荐: