gpt4 book ai didi

linux - Puppet 引用模块内的模块

转载 作者:太空宇宙 更新时间:2023-11-04 11:10:01 24 4
gpt4 key购买 nike

我在 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 agent 时,我在代理上收到以下错误:

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 代理节点添加“include 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

最佳答案

就自动加载器而言,在模块中有一个 modules/ 子树不是有效的结构。子模块没有语义。

如果您迫切希望这种特殊情况能够正常工作,则必须将 /etc/puppet/modules/A 添加到您的 modulepath 配置设置中。

你可能希望提出一个新问题并描述你实际试图解决的问题,因为看起来你的代码架构有点不干净。

关于linux - Puppet 引用模块内的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23624344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com