2016-02-26 105 views
1

我想在我自己的模塊rehan中使用elasticsearch/elasticsearch模塊。 elasticsearch/elasticsearch模塊提供了一個名爲elasticsearch的類。如果我還想在我的模塊中創建一個使用elasticsearch/elasticsearch中的類的類,那我該如何實現呢?我曾嘗試:處理兩個具有相同名稱的木偶類

class rehan::elasticsearch { 

    class { 'elasticsearch': 
     manage_repo => true, 
     repo_version => '2.2', 
     require  => Class['java'] 
    } 

    elasticsearch::instance { 'es-01': 
     require => Package['elasticsearch'], 
    } 

} 

上面的代碼中的錯誤有:

Error: Duplicate declaration: Class[Rehan::Elasticsearch] is already declared; cannot redeclare at..

回答

3

在木偶3(!即使未來解析器),你需要使用:

class { '::elasticsearch': 
    manage_repo => true, 
    repo_version => '2.2', 
    require  => Class['java'] 
} 

在木偶4,類型,類和變量的解析規則發生了變化(它不會嘗試根據上下文來解決它們),所以你的代碼是有效的。

+0

我希望能夠以某種方式使用名稱空間,比如'elasticsearch :: elasticsearch'。 –

+1

@MuhammadRehanSaeed啊我誤解了這個問題。我想你使用的是Puppet 3. – Artefacto

+0

@MuhammadRehanSaeed我改變了答案。 – Artefacto

相關問題