Puppet elasticsearch模块(class vs define)

时间:2015-05-29 18:25:52

标签: elasticsearch puppet hiera

我正在尝试将以下elasticsearch模块用于puppet(使用hiera)。

我正在尝试配置node.name,例如可以在instance.pp文件中看到。

elasticsearch::instance不是一个类,但它只是被定义,似乎在其他类中使用(特别是弹性搜索,在init.pp中)。

我尝试将它实例化为一个类,并通过以下方式进行配置:

在我的.yaml中

elasticsearch::elasticsearch::instance::node.name: 'myname',但无济于事。

2 个答案:

答案 0 :(得分:3)

我会尝试解释你提到的所有问题。

  1. Class vs define。主要区别在于类是木偶中的单身人士。

  2. 如果您要创建elasticsearch::instance的实例 只需添加到你的木偶清单:

  3. elasticsearch::instance { 'some_name': }

    examples完全相同。

    1. hiera与puppet一起使用的目的是根据部署环境为puppet清单提供适当的值。您只能通过在hiera中定义资源来创建资源。如果在hiera中定义某个资源,请使用create_resource函数创建实例。 请阅读以下article。例如,相当于在puppet中创建一个实例:

      users { 'gary':
        ensure   => present,
        uid      => '5001',
        gid      => 'gary',
        shell    => 'zsh',
        password => $password,
      }
      
    2. 是,hiera中的以下定义

      #some.yaml
      users:
        gary:
          ensure: 'present'
          uid: '5001'
          gid: 'gary'
          shell: 'zsh'
          password: 'biglongpasswordhash'
      

      在puppet清单中进行实例化:

      $users = hiera('users')
      create_resources('users')
      

答案 1 :(得分:0)

根据您的说明,您似乎了解classdefine之间的区别。要直接回答您的问题,应将其组织为:

---
elasticsearch::instances:
  es-01:
    config:
      node.name: 'es-01'
  es-02:
    config:
      node.name: 'es-02'

multipleinstances.yaml