【发布时间】:2018-11-19 11:35:13
【问题描述】:
我在 puppet 中有 hiera 数据如下:
elasticsearch::cluster_name: 'elasticsearch-dev'
elasticsearch::masterlist: [ "elasticsearchdev01.domain.com", "elasticsearchdev02.domain.com", "elasticsearchdev03.domain.com" ]
elasticsearch::kibanalist: [ "kibanadev01.domain.com" ]
我的清单包含以下内容:
$masterlist = hiera('elasticsearch::masterlist')
$kibanalist = hiera('elasticsearch::kibanalist')
if ( $::fqdn in $masterlist ) or ( $::fqdn in $kibanalist ) {
$cluster_name = hiera('elasticsearch::cluster_name')
}
else {
notify { 'No cluster for node':
message => "${::fqdn} is not configured to be in any cluster in the hiera data",
}
}
我想修改它以允许为单个环境配置多个集群,但我不确定实现它的最佳方法。我希望能够将主列表与其对应的集群名称分组,然后为每个节点调用相关的集群名称。
我想也许我需要使用哈希数组并对其进行迭代,但我不知道如何在清单中涵盖这一点。
【问题讨论】:
-
我想知道Puppet docs on iteration 是否有帮助?你可能需要一个最近的 Puppet 才能工作。
-
我将向您指出文档,因为这是一个理论问题:puppet.com/docs/puppet/5.5/lang_iteration.html。如果你把问题具体化,那么我们可以给你一个具体的答案。不过,该文档目前将是朝着正确方向迈出的一步。