2011-08-30 60 views
2

我寫木偶艙單和我用木偶來部署我的系統。 我現在正在重構清單以使其可維護。如何使用參數化的類來減少代碼庫

一個子系統的是tomcat的web應用用。 我有〜10個webapps。每個人都有幾乎相同的程序部署。 現在我使用類。 10個文件 - 幾乎相同。

當我試圖使用參數化類,木偶讓我初始化它只有一次。 然後我試圖創建從webapp類繼承的'空'類。 它不工作,因爲puppet抱怨參數沒有通過父類。

我看不出有什麼方法我可以抽象的代碼。怎麼做?

我想實現:

node { 
    class {"webapp::first": param1 = one} 
    class {"webapp::second": param1 = two} 
    } 

,其中第一和第二是使用相同配方的應用程序。

我知道有定義,但配方是相當大的,甚至如果有可能,我覺得類更具可讀性。

+0

我已經實現了與定義,所以我有新的類型。我覺得這不直觀。我錯了嗎?有更好的方法嗎? – user425720

回答

4

你可以在你的類使用的參數,但定義更你想要什麼。引用官方文檔

類和定義類型的創建方式相似,但用法截然不同。

定義的類型用於定義在給定主機上具有多個實例的可重用對象,因此>它們不能包含只有一個實例的任何資源。例如,多個使用>相同的定義不能創建相同的文件。

http://docs.puppetlabs.com/guides/language_guide.html#resource-collections

+0

以下是一個新鏈接:http://docs.puppetlabs.com/puppet/latest/reference/lang_defined_types.html – rmmeans

0

嘗試使用用戶定義類型類是單身本質