【发布时间】:2014-06-30 17:16:02
【问题描述】:
我在 Linux 6 机器上使用 Puppet 3.5.1。
我有一个包含子模块“B”的本地模块“A”。这样子模块“B”位于“/etc/puppet/modules/A/modules/B”中。
我在我的模块“A”类中引用子模块“B”:(/etc/puppet/modules/A/manifest/init.pp 文件)
class A::one (
...
class { 'B':
val1 => 'abc',
val2 => 'abc',
}
...
)
B 然后不引用任何其他内容。 当我启动 puppet master 和 puppet 代理时,代理上出现以下错误:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Puppet::Parser::AST::Resource failed with error ArgumentError: Could not find declared class B
我错过了什么?
我看到一些帖子的解决方案是为 puppet 代理节点添加“包含 B”。如果是这样的话,既然这是另一个模块中的一个模块,我该如何引用它?
编辑 1
我将子模块“B”移动到主模块文件夹中,从“/etc/puppet/modules/A/modules”移动到“/etc/puppet/modules”。它给出了错误:
Error: Duplicate declaration: Class[B] is already declared; cannot redeclare at /etc/puppet/modules/A/manifest/init.pp
【问题讨论】: