【问题标题】:How do I process an yaml array in puppet ERB template?如何在 puppet ERB 模板中处理 yaml 数组?
【发布时间】:2016-06-14 22:16:18
【问题描述】:

我有一些看起来像这样的分层数据:

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

这将作为参数传递给我的类,并在如下所示的 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

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

【问题讨论】:

  • 您只有在 Hiera 数据文件中有一个 YAML 数组。您无需执行任何特殊操作即可将其转换为 Puppet 数组——无论是在自动数据绑定期间(您的情况)还是在您使用 hiera() 时,Hiera 检索它时都会自动发生这种情况手动检索它的功能。

标签: yaml puppet erb hiera


【解决方案1】:

应该这样做:

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

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

【讨论】:

    猜你喜欢
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 2011-04-15
    • 1970-01-01
    相关资源
    最近更新 更多