2014-05-13 85 views
0

我在Linux 6機器上使用Puppet 3.5.1。木偶指模塊內的模塊

我有一個本地模塊「A」,其中包含一個子模塊「B」。這樣子模塊「B」位於「/ etc/puppet/modules/A/modules/B」中。

我指的是子模塊 「B」 我的模塊中 「A」 類:(/etc/puppet/modules/A/manifest/init.pp文件)

class A::one (
... 
    class { 'B': 
     val1 => 'abc', 
     val2 => 'abc', 
    } 
... 
) 

乙然後不引用任何其他人。 當我啓動傀儡師和木偶代理,我得到了代理以下錯誤:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Puppet::Parser::AST::Resource failed with error ArgumentError: Could not find declared class B 

有什麼我錯過了?

我看到一些帖子的解決方案是爲puppet agent節點添加'include B'。如果這是解決方案,因爲這是另一個模塊中的模塊,我該如何引用它?

編輯1

我移動子模塊 「B」 到主模塊的文件夾,從 「的/ etc /木偶/模塊/ A /模塊」 到 「的/ etc /木偶/模塊」。它給了錯誤:

Error: Duplicate declaration: Class[B] is already declared; cannot redeclare at /etc/puppet/modules/A/manifest/init.pp 

回答

1

有一個模塊中的modules/子樹是沒有有效的結構,至於自動加載機而言。子模塊沒有語義。

如果你非常想要這個特定的情況下工作,你將不得不/etc/puppet/modules/A添加到您的modulepath配置設置。

您可能希望提出一個新問題並描述您實際嘗試解決的問題,因爲您的代碼架構似乎有點不潔。