繁体   English   中英

带有厨师语法的erb文件

[英]erb file with chef syntax

尝试输出的内容

node['a'] = {:b "1" :c "2"}

通过做这个:

a: 
<% a = node['a'] %>
 b: <% a[:b] %>
 c: <% a[:c] %>
<% end %>

生成此:

a: 
 b: 1
 c: 2

但是,不能完全确定正确的语法是红宝石,厨师和erb的新知识。

好吧,让我们倒带一点。 第一件事是您通常不想直接在模板中引用节点属性。 在某些情况下,例如来自Ohai的属性,可以作为速记形式使用,但是对于重要数据,我也可以通过variables属性将其传入,如下所示:

template '/etc/whatever.conf' do
  source 'whatever.conf.erb'
  variables a: node['a']
end

有了这个,我们现在将数据公开为模板变量。 改善这一点的第二步是让Ruby承担生成YAML的繁重任务。 我们可以使用模板中的.to_yaml方法来做到这一点:

<%= @a.to_yaml %>

那应该就是您所需要的!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM