1

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

}

上面的代码错误:

错误:重复声明:Class[Rehan::Elasticsearch] 已声明;不能在..重新声明

4

1 回答 1

3

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

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

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

于 2016-02-26T10:55:14.660 回答