Как обработать массив yaml в шаблоне Puppet ERB?

У меня есть некоторые данные hiera, которые выглядят так:

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 -%>

Но когда я запускаю кукольный агент, я получаю файл, который выглядит так:

# 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

Я подозреваю, что в шаблоне, который я написал, что-то не так. Что я делаю не так?


person Red Cricket    schedule 14.06.2016    source источник
comment
У вас есть массив YAML только в вашем файле данных Hiera. Вам не нужно делать ничего особенного, чтобы преобразовать его в массив Puppet — это происходит автоматически, когда Hiera извлекает его, будь то во время автоматической привязки данных (ваш случай) или когда вы используете функцию hiera() для получить его вручную.   -  person John Bollinger    schedule 15.06.2016


Ответы (1)


Что-то вроде этого должно сделать это:

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

Я подозреваю, что, используя Array(), вы переносите свой массив в другой.

person Craig    schedule 15.06.2016