傀儡elasticsearch模块(类vs定义)



我正在尝试使用以下elasticsearch模块的木偶(与hiera)。

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

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

我已经尝试实例化它作为一个类,以及配置通过类似的东西:

elasticsearch::elasticsearch::instance::node.name: 'myname'在我的。yaml中,但无济于事。

我会尽力解释你提到的所有问题。

  1. 类与定义。主要区别在于puppet中的类是单例的。

  2. 如果您想创建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')
    

    从你的描述,似乎你了解classdefine之间的区别。要直接回答你的问题,应该这样组织:

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

    multipleinstances.yaml

    相关内容

    • 没有找到相关文章

    最新更新