将Heira变量转换为逗号分隔的标记

时间:2014-05-21 09:26:09

标签: puppet

我有一个yaml文件,我可以在其中指定n个选项:

---
solr:
    - dev
    - test

然后我使用heira将它们称为木偶变量:

if $solr_values == undef {
  $solr_values = hiera('solr', false)
}

if count($solr_values) > 0 {
  class { solr:
    cores => [ $solr_values ],
  }
}

然而,$ solr_values正在成为' devtest'而不是' dev'。 '测试'正如我所期待的,因为它是yaml中的一个列表。有人可以就这里的最佳方法提出建议吗?

1 个答案:

答案 0 :(得分:3)

表达式[ $solr_values ]为您提供了一组数组,例如[ [ 'dev', 'test', ... ] ],这可能不是你想要的。

我建议简单

cores => $solr_values,

请注意,在字符串中使用数组变量$core / $solr_values时,例如

$debug = "VALUES: '$solr_values'"

Puppet会通过简单地连接值将数组强制转换为字符串,因此您仍然会以'devtest...'

结束

您要做的是使用join模块中的stdlib功能,例如

cores => join($solr_values, ','),