2015-05-15 152 views
5

我有一个使用gini-archive的傀儡模块。最近我改变我的模块取决于biemond-wildfly,这取决于nanliu-archive如何处理具有相同名称的傀儡模块?

但是,我不能安装南流归档,因为这两种归档模块安装到一个名为archive目录。我相信这违反了傀儡模块的要求,因为它们都应该安装到名为<username>-archive的目录中。

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

注意我有一个Java的背景,每一个类是以防止这些类型的问题包层次,但我不能看到任何傀儡等同。

我知道我可以有不同的模块目录(/etc/puppet/modules/etc/puppet/modules2等)的整个负载,但木偶似乎仍然通过这些看以,这意味着它总是会从第一模块目录加载archive类列表。

是否有解决这个或已经达到了我的什么傀儡能做到的极限的方法吗?我宁愿不必为每一个模块分叉并改变类名称,这似乎击败了伪造点。

谢谢。

回答

2

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

似乎有处理这两种方式:

  1. 叉两个归档模块之一,并重新命名模块,这样就不会使用归档模块碰撞
  2. 叉模块之一,迁移它以使用与另一个相同的归档模块。由于两个归档模块的功能几乎相同,我更喜欢这种方法。
+0

我明白这个答案是正确的,但它太伤人了,不能接受它是真实的。 – 7yl4r

0

我只是做这个所以我打算用我只是分叉&更名为例子的模块,包括更多的细节展开@ ChrisPitman的答案上选择(1)位。

(不幸的是)的最简单的解决方案是将叉的一个模块并重新命名。下面是一个使用和thias/selinux的示例,其名称空间冲突为selinux。采取下面的步骤来thias/selinux模块重新命名空间到命名空间selinux_thias

  1. 叉模块。在这个例子中,我从thias/puppet-selinux创建了USF-IMaRS/puppet-selinux
  2. 将模块安装到modules/$NEW_NAME。使用git submodules这是:git submodule add https://github.com/USF-IMARS/puppet-selinux modules/selinux_thias
  3. 重命名模块类。Here是一个提交证明这基本上看起来像什么。
  4. 使用thias/selinux修改模块使用新名称selinux_thias而不是selinux