2016-02-26 104 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

相关问题