Puppet、hiera 和 erb - erb 无法识别数组

Puppet、hiera 和 erb - erb 无法识别数组

我遇到了一个非常烦人的错误,迫切需要修复。我有一个 puppet 模块,其中某些内容保存在 yaml 文件 (hiera) 中,以便人们可以快速编辑该部分。

该结构是嵌套的。

模板如下:

<%= @platforms[@platform]['users_allowed'][@host].class %>

渲染结果如下:

Array

但是当我尝试迭代它时:

<% @platforms[@platform]['users_allowed'][@host].each do | pubkey | %>
<%= pubkey %>
<% end %>

木偶 说:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template somemodule/templates/authorized_keys.erb:
Filepath: /etc/puppet/modules/somemodule/templates/authorized_keys.erb
Line: 1
Detail: undefined method `each' for nil:NilClass

它怎么会突然变成零?我该如何在这里进行迭代?

我担心我会被困在这里,甚至不知道应该朝哪个方向寻找解决方案。

在这种情况下,重写没有层次结构或嵌套结构的模块不是一种选择。

答案1

我已经在我的傀儡上测试过了并且正确的语法是:

<% @platforms[@platform]['users_allowed'][@host].each do | pubkey | -%>
  <%= pubkey %>
<% end -%>

我希望我能帮上忙。

相关内容