我正在尝试使用以下elasticsearch模块的木偶(与hiera)。
我正在尝试配置node.name
,例如,可以在instance.pp
文件中看到。
elasticsearch::instance
不是一个类,然而,它只是被定义,它似乎在其他类(特别是elasticsearch,在init.pp
)中使用。
我已经尝试实例化它作为一个类,以及配置通过类似的东西:
elasticsearch::elasticsearch::instance::node.name: 'myname'
在我的。yaml中,但无济于事。
我会尽力解释你提到的所有问题。
-
类与定义。主要区别在于puppet中的类是单例的。
-
如果您想创建
elasticsearch::instance
的实例
elasticsearch::instance { 'some_name': }
与示例完全相同。
-
在puppet中使用hiera的目的是根据部署环境为puppet清单提供适当的值。您不能仅仅通过在层次中定义资源来创建资源。如果在hiera中定义了一些资源,则使用create_resource函数创建实例。请阅读下面的文章。在示例中,相当于在puppet manifest中创建一个实例:
users { 'gary': ensure => present, uid => '5001', gid => 'gary', shell => 'zsh', password => $password, }
是,层次
中的定义如下#some.yaml
users:
gary:
ensure: 'present'
uid: '5001'
gid: 'gary'
shell: 'zsh'
password: 'biglongpasswordhash'
与实例化在puppet manifest:
$users = hiera('users')
create_resources('users')
从你的描述,似乎你了解class
和define
之间的区别。要直接回答你的问题,应该这样组织:
---
elasticsearch::instances:
es-01:
config:
node.name: 'es-01'
es-02:
config:
node.name: 'es-02'
multipleinstances.yaml