处理两个具有相同名称的Puppet类

时间:2016-02-26 10:30:33

标签: elasticsearch puppet librarian-puppet

我想在我自己的名为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'],
    }

}

以上代码错误:

  

错误:重复声明:已声明类[Rehan :: Elasticsearch];不能重新宣布..

1 个答案:

答案 0 :(得分:3)

在Puppet 3中(即使使用未来的解析器!),您需要使用:

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

在Puppet 4中,类型,类和变量的解析规则发生了变化(它确实尝试在上下文中解析它们),因此您的代码是有效的。