Puppet - 导入本地编写的(未安装的)模块的功能

Puppet - 导入本地编写的(未安装的)模块的功能

假设我有两个本地现存的模块,它们在 Forge 或自定义的类似 Forge 的存储库中都不存在。这些存储库永远不会通过命令行安装,因为它们是更大的部署的一部分,无法使用类似 Forge 的安装命令 - 它们是手动或通过存储库克隆放置在那里的。

ModuleA在其文件夹中定义一个函数functions,并且可以在 的范围内调用ModuleA。一切都很好。

ModuleB尝试从调用函数ModuleA并失败由于模块未安装且无法在 JSON 清单中找到

能否很好地解决此限制?可以以这种方式调用类 - 我不想因为这个尴尬的限制而牺牲良好的设计。

答案1

弄清楚了这一点 - 如果您希望在同一空间中导入模块的函数,您需要做的就是将模块包含在导入模块的文件dependenciesmetadata.json(我上面问题中的 ModuleB)。他们文档中的用法manifest令人困惑 - 将其包含在内metadata会更正确。

因此文件中的依赖节点metadata.json将是这样的

  "dependencies": [
    { "name":"puppetlabs/apt","version_requirement":"6.0.0" },
    { "name": "mycompany/moduleb", "version_requirement": "> 0.0.1" }
  ]

包含moduleb可导入函数。这可能意味着您无法正确使用 Puppet 锻造,但如果您正在处理这个问题,您可能不会损失太多。

相关内容