It has been a long day,
How can I pass an array as symbol in chef ?
I want to build a list of all the FQDNs containing my role 'web', and pass that list to my erb template.
Tried to do it directly from the template, but it looks it only supports ruby code and not exactly chef code.
my recipe,
44 template "#{node[:apache][:dir]}/httpd.conf" do
45 source "httpd.erb"
49 variables({
50 :list_of_nodes => [],
51 :list_of_nodes => search(:node, "role:web" )
52 })
53 notifies :restart, resources(:service =>"httpd")
54 end
my httpd.erb template
60 <% count=0 %>
61 <% @list_of_nodes.each do |result| %>
62 <% puts "hostname#{count} = #{result['fqdn']}"%>
67 <% count = count + 1 %>
68 <% end %>
the result should be:
hostname0 =
asdfsdf.sdfdsf.comhostname1 =
asdfkjew.com
.
.
.
Right now I simply get a no method .each for you,
[2013-05-29T18:54:18+00:00] FATAL: Chef::Mixin::Template::TemplateError: undefined method `each' for nil:NilClass