elasticsearch Puppet elasticsearch模块(类别vs定义),elasticsearch,puppet,hiera,elasticsearch,Puppet,Hiera" /> elasticsearch Puppet elasticsearch模块(类别vs定义),elasticsearch,puppet,hiera,elasticsearch,Puppet,Hiera" />

elasticsearch Puppet elasticsearch模块(类别vs定义)

elasticsearch Puppet elasticsearch模块(类别vs定义),elasticsearch,puppet,hiera,elasticsearch,Puppet,Hiera,我正在尝试为puppet(与hiera)使用以下模块 例如,我正在尝试配置节点.name,它可以在实例.pp文件中看到 elasticsearch::instance不是一个类,但它只是定义的,似乎在其他类中使用(特别是elasticsearch,在init.pp中) 我尝试将其实例化为类,并通过以下方式进行配置: elasticsearch::elasticsearch::instance::node.name:'myname'在my.yaml中,但无效 我会尽力解释你提到的所有问题 vs。主

我正在尝试为puppet(与hiera)使用以下模块

例如,我正在尝试配置
节点.name
,它可以在
实例.pp
文件中看到

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

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


elasticsearch::elasticsearch::instance::node.name:'myname'
在my.yaml中,但无效

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

  • vs。主要区别在于puppet中的类是单例的

  • 如果要创建
    elasticsearch::instance
    只需添加到您的傀儡清单:

  • users { 'gary':
      ensure   => present,
      uid      => '5001',
      gid      => 'gary',
      shell    => 'zsh',
      password => $password,
    }
    
    $users = hiera('users')
    create_resources('users')
    
    elasticsearch::实例{'some_name':}

    完全一样

  • 与puppet一起使用的目的是根据部署环境为puppet清单提供适当的值。您不能仅通过在hiera中定义资源来创建资源。若您在hiera中定义了一些资源,请使用函数创建一个实例。 请阅读以下内容。如示例所示,相当于在puppet清单中创建实例:

    users { 'gary':
      ensure   => present,
      uid      => '5001',
      gid      => 'gary',
      shell    => 'zsh',
      password => $password,
    }
    
    $users = hiera('users')
    create_resources('users')
    
  • 在hiera中的定义如下:

    #some.yaml
    users:
      gary:
        ensure: 'present'
        uid: '5001'
        gid: 'gary'
        shell: 'zsh'
        password: 'biglongpasswordhash'
    
    在puppet清单中实例化:

    users { 'gary':
      ensure   => present,
      uid      => '5001',
      gid      => 'gary',
      shell    => 'zsh',
      password => $password,
    }
    
    $users = hiera('users')
    create_resources('users')
    

    从您的描述中,您似乎理解了
    class
    define
    之间的区别。要直接回答您的问题,应将其组织为:

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

    请详细说明您的问题,因为现在我很难理解真正的问题是什么。您想知道puppet中的类和定义之间的区别/您想知道如何实例化
    elasticsearch::instance
    ,或者如何使用hiera创建这样的实例?