如何避免 Puppet 数组中的代码重复?

How to avoid code duplication in a Puppet array?

瞄准

公司有脚本可以启动JAR文件。大多数这些 JAR 文件需要启动两次,有些需要启动三次。今天已经创建了一个数组,以便多次启动 JAR。它按预期工作,但问题是如何避免 Puppet 数组中的代码重复?

数组

$variables [
  'JAR_0',
  'JAR_0',
  'JAR_0',
  'JAR_1',
  'JAR_1',
  'JAR_1',
  'JAR_2',
  'JAR_2',
  'JAR_2',
  'JAR_3',
  'JAR_3',
  'JAR_4',
  'JAR_4',
  'JAR_5',
  'JAR_5',
  'JAR_6',
  'JAR_6',
  'JAR_6',
  'JAR_7',
  'JAR_7',
  'JAR_8',
  'JAR_8',
  'JAR_8',
  'JAR_9',
  'JAR_9',
  'JAR_9'
]

For循环

<% @variables.each do |variable| -%>
    hello <%= variable %>
<% end -%>

您可以改用地图,例如:

$variables = {
  'JAR_0' => 3,
  'JAR_1' => 2,
  'JAR_2' => 2,
  'JAR_3' => 3
}

然后在模板中你会有这样的循环

<% @variables.keys.each do |k| -%>
  <% @variables[k].to_i.times do -%>
    hello <%= k %>
  <% end -%>
<% end -%>