【发布时间】:2015-05-11 11:16:35
【问题描述】:
我正在尝试运行厨师,但一直收到标题中的错误。日志输出如下;
Project: Error executing action `create` on resource 'template[/etc/awslogs//cwlogs.cfg]'
Project: ================================================================================
Project:
Project: Chef::Mixin::Template::TemplateError
Project: ------------------------------------
Project: no implicit conversion of String into Integer
Project:
Project: Resource Declaration:
Project: ---------------------
Project: # In /tmp/packer-chef-solo/cookbooks-0/cloudwatch-cookbook/recipes/logconfig.rb
Project:
Project: 21: template "#{node['cloudwatch-cookbook']['cwlogs']['directory']}/#{node['cloudwatch-cookbook']['cwlogs']['configfilename']}" do
Project: 22: source "cwlogs.cfg.erb"
Project: 23: owner "root"
Project: 24: group "root"
Project: 25: mode 0644
Project: 26: variables(
Project: 27: :cookbook_name => "cloudwatch-cookbook"
Project: 28: )
Project: 29: end
Project:
Project: Compiled Resource:
Project: ------------------
Project: # Declared in /tmp/packer-chef-solo/cookbooks-0/cloudwatch-cookbook/recipes/logconfig.rb:21:in `from_file'
Project:
Project: template("/etc/awslogs//cwlogs.cfg") do
Project: action "create"
Project: retries 0
Project: retry_delay 2
Project: default_guard_interpreter :default
Project: path "/etc/awslogs//cwlogs.cfg"
Project: backup 5
Project: atomic_update true
Project: source "cwlogs.cfg.erb"
Project: variables {:cookbook_name=>"cloudwatch-cookbook"}
Project: declared_type :template
Project: cookbook_name :"cloudwatch-cookbook"
Project: recipe_name "logconfig"
Project: mode 420
Project: owner "root"
Project: group "root"
Project: end
Project:
Project: Template Context:
Project: -----------------
Project: on line #31
Project: 29: <% node['cloudwatch-cookbook']['cwlogs']['logfiles'].each do |group| -%>
Project: 30:
Project: 31: [<%= group['groupname'] %>_<%= group['logfile'] %>]
Project: 32: datetime_format = [%Y-%m-%d %H:%M:%S]
Project: 33: log_group_name = <%= group['groupname'].gsub(' ', '_') %>
Project:
Project: Recipe: apache2::default
Project: * service[apache2] action reload
Project: - reload service service[apache2]
Project:
Project: Running handlers:
Project: [2015-05-11T11:03:15+00:00] ERROR: Running exception handlers
Project: Running handlers complete
Project: [2015-05-11T11:03:15+00:00] ERROR: Exception handlers complete
Project: [2015-05-11T11:03:15+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
Project: Chef Client failed. 99 resources updated in 301.919689764 seconds
Project: [2015-05-11T11:03:15+00:00] ERROR:
Project:
Project: Chef::Mixin::Template::TemplateError (no implicit conversion of String into Integer) on line #31:
Project:
Project: 29: <% node['cloudwatch-cookbook']['cwlogs']['logfiles'].each do |group| -%>
Project: 30:
Project: 31: [<%= group['groupname'] %>_<%= group['logfile'] %>]
Project: 32: datetime_format = [%Y-%m-%d %H:%M:%S]
Project: 33: log_group_name = <%= group['groupname'].gsub(' ', '_') %>
Project:
Project: (erubis):31:in `[]'
Project: (erubis):31:in `block (2 levels) in evaluate'
Project: (erubis):29:in `each'
Project: (erubis):29:in `block in evaluate'
我曾尝试查看类似问题的现有答案,但他们都发现了不同的问题,这些问题似乎无法反映我的情况。
有人有什么建议吗?
【问题讨论】:
-
node['cloudwatch-cookbook']['cwlogs']['logfiles']属性是如何定义的?你能发布一些例子吗?您似乎正在访问它们,因为 node['cloudwatch-cookbook']['cwlogs']['logfiles'] 是一个哈希图,但它是一个数组。 -
日志文件是这样定义的;
'logfile' => '@CW_LOG_FILE@', 'groupname' => '@CW_GROUP_NAME@', 'streamname' => '{instance_id}'和属性通过 json 文件作为"cloudwatch-cookbook" : { "cwlogs" : { "logfiles" : { "logfile" : "/var/log/syslog", "groupname" : "Project", "streamname" : "Project" }, "region" : "eu-west-1" } }
标签: ruby chef-infra packer