如何处理具有相同名称的类的puppet模块?

str*_*ger 7 puppet

我有一个使用gini-archive的puppet模块.最近我改变我的模块依赖于biemond-wildfly,这取决于nanliu-archive.

但是,我无法安装nanliu-archive,因为这两个归档模块都安装在一个名为的目录中archive.我相信这违反了puppet模块的要求,因为它们都应该安装到名为的目录中<username>-archive.

但是,即使我把它们放在不同的目录中,我仍然有问题.两个类都被调用archive(实际上一个是一个类,一个是定义,但我认为现在不太重要),所以当我的模块说include archive,木偶不会知道我想要哪一个.

注意我有一个java背景,其中每个类都在一个包层次结构中,可以防止这类问题,但我看不到任何木偶的等价物.

我知道我可以有不同的模块目录(的整个负载/etc/puppet/modules,/etc/puppet/modules2等等),但木偶似乎仍然通过这些看才能,这意味着它将永远载入archive从列表中的第一个模块的目录类.

有没有办法解决这个问题,或者我达到了傀儡可以做的极限?我宁愿不必分叉每一个模块并更改类名,这似乎打败了伪造点.

谢谢.

Chr*_*man 4

模块所在目录的名称必须是archive,用户名仅用于分发和打包模块的目的,但在自动加载时不会被 puppet 使用。基本上,你所看到的都是正确的。

似乎有两种方法可以处理这个问题:

  1. 分叉两个存档模块之一并重命名该模块,以免发生冲突
  2. 使用存档模块分叉其中一个模块,并将其迁移为使用与另一个模块相同的存档模块。由于两个归档模块几乎做同样的事情,所以我更喜欢这种方法。

  • 我感觉这个答案是正确的,但接受它是真的太伤人了。 (2认同)