在厨房聚合期间,调用木偶申请,我得到了这个错误:
错误:评估错误:评估函数调用时出错,无法找到class :: alibi for … at .. entry.pp不在场证明……
您的代码应该正确放置在模块中。当Puppet找到一个名为的类时 alibi ,它会检查你的模块路径中的每个目录(不清楚你的情况,但可能只是 /tmp/kitchen/modules )一个文件 alibi/manifests/init.pp 。工作目录和清单目录是无关紧要的,至少在任何版本的Puppet中仍然应该在任何地方使用。
alibi
/tmp/kitchen/modules
alibi/manifests/init.pp
但是,这个特殊名称有点特殊,因为它将被解释为模块主类的名称。同一模块中的其他类和定义的类型将以不同方式映射。例如, alibi::good 将被映射到 alibi/manifests/good.pp ,和 alibi::alibi 将被映射到 alibi/manifests/alibi.pp 。
alibi::good
alibi/manifests/good.pp
alibi::alibi
alibi/manifests/alibi.pp
如果我使用init.pp而不是entry.pp(但不调用hiera_include()),这没关系
嗯,是的,不。 Puppet不依赖于文件映射约定,并在您明确告诉它要评估哪个文件时检查当前目录。因此,当您明确命名时 init.pp 它,它找到并评估该文件。但不是,单独评估该文件几乎没用:Puppet将解析类声明,但该清单中没有任何内容可以说明 应用 该类到目标节点。
init.pp