处理两个同名的 Puppet 类
Handling Two Puppet Classes with the Same Name
我想在我自己的名为 rehan
的模块中使用 elasticsearch/elasticsearch 模块。 elasticsearch/elasticsearch 模块提供了一个名为 elasticsearch
的 class。如果我还想在我的模块中创建一个使用 elasticsearch/elasticsearch 中的模块的 class,我该如何实现?我试过:
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..
在 Puppet 3 中(甚至使用未来的解析器!),您需要使用:
class { '::elasticsearch':
manage_repo => true,
repo_version => '2.2',
require => Class['java']
}
在 Puppet 4 中,类型、类 和变量的解析规则发生了变化(它不会尝试根据上下文解析它们),因此您的代码是有效的。
我想在我自己的名为 rehan
的模块中使用 elasticsearch/elasticsearch 模块。 elasticsearch/elasticsearch 模块提供了一个名为 elasticsearch
的 class。如果我还想在我的模块中创建一个使用 elasticsearch/elasticsearch 中的模块的 class,我该如何实现?我试过:
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..
在 Puppet 3 中(甚至使用未来的解析器!),您需要使用:
class { '::elasticsearch':
manage_repo => true,
repo_version => '2.2',
require => Class['java']
}
在 Puppet 4 中,类型、类 和变量的解析规则发生了变化(它不会尝试根据上下文解析它们),因此您的代码是有效的。