Just having issues trying to get this to work. Not exactly sure where I went but I'm guessing it might have something to do with the undeclared "group".
So here is my code:
Attribute File:
default['dynamic']['config']['queueGroup'] = [
{
'groupName' => 'group1',
'queueNameRegex' => 'temp.x',
'showIndividualStats' => 'false',
},
{
'groupName' => 'group2',
'queueNameRegex' => 'temp.y',
'showIndividualStats' => 'false',
},
]
ERB Template:
queueGroups:
<% @node['dynamic']['config']['queueGroup'].each do |group| %>
<%= "" %>
<% @group.each do |key, value| %>
<%if key == "groupName" %>
- groupName:<%= value %>
<% else %>
<%= "#{key}=#{value}" %>
<% end %>
<% end %>
<% end %>
Recipe:
template '/tmp/temp.config' do
source 'config.yml.erb'
owner 'test'
group 'test'
mode '0644'
variables(
rmq_host: node['fqdn'],
rmq_port: node['dynamic']['config']['rmq_port'],
rmq_usessl: node['dynamic']['config']['rmq_usessl'],
rmq_username: node['dynamic']['config']['rmq_username'],
rmq_password: node['dynamic']['config']['rmq_password'],
rmq_display_name: node['fqdn'],
rmq_socket_timeout: node['dynamic']['config']['rmq_socket_timeout'],
rmq_connect_timeout: node['dynamic']['config']['rmq_connect_timeout'],
rmq_metric_prefix: node['dynamic']['config']['rmq_metric_prefix']
)
action :create
end
Getting the following error when I try to run the recipe to create the template:
Running handlers:
[2020-10-15T23:02:31+11:00] ERROR: Running exception handlers
Running handlers complete
[2020-10-15T23:02:31+11:00] ERROR: Exception handlers complete
Chef Infra Client failed. 5 resources updated in 07 seconds
[2020-10-15T23:02:31+11:00] FATAL: Stacktrace dumped to /tmp/cookbooks/london/.chef/local-mode-cache/cache/chef-stacktrace.out
[2020-10-15T23:02:31+11:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2020-10-15T23:02:31+11:00] FATAL: Chef::Mixin::Template::TemplateError: undefined method `each' for nil:NilClass
Below is the Stacktrace output
Generated at 2020-10-15 23:02:31 +1100
Chef::Mixin::Template::TemplateError:
Chef::Mixin::Template::TemplateError (undefined method `each' for nil:NilClass) on line #30:
28: <<% @node['dynamic']['config']['queueGroup'].each do |group| %>
29: <%= "" %>
30: <% @group.each do |key, value| %>
31: <%if key == "groupName" %>
32: - groupName:<%= value %>
/tmp/cookbooks/default/.chef/local-mode-cache/cache/cookbooks/test/templates/default/temp.config.erb:30:in `block (2 levels) in evaluate'
/tmp/cookbooks/default/.chef/local-mode-cache/cache/cookbooks/test/templates/default/temp.config.erb:28:in `each'
/tmp/cookbooks/default/.chef/local-mode-cache/cache/cookbooks/test/templates/default/temp.config.erb:28:in `block in evaluate'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb:74:in `instance_eval'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb:74:in `evaluate'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/mixin/template.rb:161:in `_render_template'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/mixin/template.rb:146:in `render_template'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/template/content.rb:76:in `file_for_provider'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/file_content_management/content_base.rb:42:in `tempfile'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/file.rb:455:in `tempfile'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/file.rb:329:in `do_generate_content'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/file.rb:141:in `action_create'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider.rb:189:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource.rb:586:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:74:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:108:in `block in run_all_actions'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:108:in `each'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:108:in `run_all_actions'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:132:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/resource_list.rb:96:in `block in execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:115:in `call_iterator_block'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:86:in `step'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/resource_list.rb:94:in `execute_each_resource'
/opt/chef/embedded/lib/ruby/2.6.0/forwardable.rb:230:in `execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:130:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:703:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:698:in `catch'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:698:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:722:in `converge_and_save'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:288:in `run'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:320:in `run_with_graceful_exit_option'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:296:in `block in run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/local_mode.rb:42:in `with_server_connectivity'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:279:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application/base.rb:330:in `run_application'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:69:in `run'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-bin-15.8.23/bin/chef-client:25:in `<top (required)>'
/bin/chef-client:177:in `load'
/bin/chef-client:177:in `<main>'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/mixin/template.rb:163:in `rescue in _render_template'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/mixin/template.rb:158:in `_render_template'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/mixin/template.rb:146:in `render_template'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/template/content.rb:76:in `file_for_provider'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/file_content_management/content_base.rb:42:in `tempfile'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/file.rb:455:in `tempfile'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/file.rb:329:in `do_generate_content'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/file.rb:141:in `action_create'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider.rb:189:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource.rb:586:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:74:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:108:in `block in run_all_actions'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:108:in `each'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:108:in `run_all_actions'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:132:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/resource_list.rb:96:in `block in execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:115:in `call_iterator_block'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:86:in `step'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/resource_list.rb:94:in `execute_each_resource'
/opt/chef/embedded/lib/ruby/2.6.0/forwardable.rb:230:in `execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:130:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:703:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:698:in `catch'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:698:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:722:in `converge_and_save'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:288:in `run'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:320:in `run_with_graceful_exit_option'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:296:in `block in run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/local_mode.rb:42:in `with_server_connectivity'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:279:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application/base.rb:330:in `run_application'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:69:in `run'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-bin-15.8.23/bin/chef-client:25:in `<top (required)>'
/bin/chef-client:177:in `load'
/bin/chef-client:177:in `<main>'
>>>> Caused by NoMethodError: undefined method `each' for nil:NilClass
/tmp/cookbooks/default/.chef/local-mode-cache/cache/cookbooks/test/templates/default/temp.config.erb:30:in `block (2 levels) in evaluate'
/tmp/cookbooks/default/.chef/local-mode-cache/cache/cookbooks/test/templates/default/temp.config.erb:28:in `each'
/tmp/cookbooks/default/.chef/local-mode-cache/cache/cookbooks/test/templates/default/temp.config.erb:28:in `block in evaluate'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb:74:in `instance_eval'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb:74:in `evaluate'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/mixin/template.rb:161:in `_render_template'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/mixin/template.rb:146:in `render_template'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/template/content.rb:76:in `file_for_provider'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/file_content_management/content_base.rb:42:in `tempfile'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/file.rb:455:in `tempfile'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/file.rb:329:in `do_generate_content'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider/file.rb:141:in `action_create'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/provider.rb:189:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource.rb:586:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:74:in `run_action'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:108:in `block in run_all_actions'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:108:in `each'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:108:in `run_all_actions'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:132:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/resource_list.rb:96:in `block in execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:115:in `call_iterator_block'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:86:in `step'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/resource_collection/resource_list.rb:94:in `execute_each_resource'
/opt/chef/embedded/lib/ruby/2.6.0/forwardable.rb:230:in `execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/runner.rb:130:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:703:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:698:in `catch'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:698:in `converge'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:722:in `converge_and_save'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/client.rb:288:in `run'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:320:in `run_with_graceful_exit_option'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:296:in `block in run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/local_mode.rb:42:in `with_server_connectivity'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:279:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application/base.rb:330:in `run_application'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/application.rb:69:in `run'
/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-bin-15.8.23/bin/chef-client:25:in `<top (required)>'
/bin/chef-client:177:in `load'
/bin/chef-client:177:in `<main>'
Hope someone could quickly help. Thank you in advance!