我正在尝试将以下elasticsearch模块用于puppet(使用hiera)。
我正在尝试配置node.name
,例如可以在instance.pp
文件中看到。
elasticsearch::instance
不是一个类,但它只是被定义,似乎在其他类中使用(特别是弹性搜索,在init.pp
中)。
我尝试将它实例化为一个类,并通过以下方式进行配置:
在我的.yaml中 elasticsearch::elasticsearch::instance::node.name: 'myname'
,但无济于事。
答案 0 :(得分:3)
我会尝试解释你提到的所有问题。
如果您要创建elasticsearch::instance
的实例
只需添加到你的木偶清单:
elasticsearch::instance { 'some_name': }
与examples完全相同。
将hiera与puppet一起使用的目的是根据部署环境为puppet清单提供适当的值。您只能通过在hiera中定义资源来创建资源。如果在hiera中定义某个资源,请使用create_resource函数创建实例。 请阅读以下article。例如,相当于在puppet中创建一个实例:
users { 'gary':
ensure => present,
uid => '5001',
gid => 'gary',
shell => 'zsh',
password => $password,
}
是,hiera中的以下定义
#some.yaml
users:
gary:
ensure: 'present'
uid: '5001'
gid: 'gary'
shell: 'zsh'
password: 'biglongpasswordhash'
在puppet清单中进行实例化:
$users = hiera('users')
create_resources('users')
答案 1 :(得分:0)
根据您的说明,您似乎了解class
和define
之间的区别。要直接回答您的问题,应将其组织为:
---
elasticsearch::instances:
es-01:
config:
node.name: 'es-01'
es-02:
config:
node.name: 'es-02'