我无法使用Chef尝试将默认属性文件中的信息转换为模板。目前,我有这个:
# attributes/default.rb
default['environment']['extrahosts'] = [ 'hostname1:address1', 'hostname2:address2' ]
#recipes/default.rb
extra_hosts = node[:environment][:extrahosts]
...
...
template '/blahblah' do
source 'blahblah.erb'
variables( :extra_hosts => extra_hosts )
end
#templates/blahblah.erb
<% for @item in @extra_hosts %>
- <%= @item %>
<% end %>
虽然这不起作用。我将如何添加到模板中以产生:
- hostname1:address1
- hostname2:address2
答案 0 :(得分:1)
在Ruby中编写循环的方法是使用each
方法和块。
<% @extra_hosts.each do |item| %>
- <%= item %>
<% end %>
另请注意,循环变量没有at符号,因为它不是实例变量。