2015-05-15 107 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