如何在 puppet ERB 模板中处理 yaml 数组?

How do I process an yaml array in puppet ERB template?

我有一些像这样的 hiera 数据:

netapp_nfs_shares:
  - 10.199.1.34:/os_cloud
  - 127.0.0.2:/example

这作为参数传递给我的 class 并在如下所示的 erb 模板文件中使用:

# This file was generated from nfs-shares.conf.erb by puppet
<% Array(@netapp_nfs_shares).each do |line| -%>
<%= line %>
<% end -%>

但是当我运行 Puppet 代理时,我得到一个如下所示的文件:

# This file was generated from nfs-shares.conf.erb by puppet
["10.199.1.34:/os_cloud", "127.0.0.2:/example"]

我希望我能得到一个如下所示的文件:

# This file was generated from nfs-shares.conf.erb by puppet
10.199.1.34:/os_cloud
127.0.0.2:/example

我怀疑是我写的模板有问题。我做错了什么?

应该这样做:

<% @netapp_nfs_shares.each do |line| -%>
<%= line %>
<% end -%>

我怀疑通过使用 Array(),您将数组包装在另一个数组中。