Chef-Ruby-ArgumentsError应为0

Chef-Ruby-ArgumentsError应为0,ruby,compiler-errors,chef-infra,Ruby,Compiler Errors,Chef Infra,我正在尝试用Chef(非常新)编写一本烹饪书,但我遇到了以下错误,我无法理解 template node '/etc/selinux/config' do source "config.erb" mode "0644" variables( :selinux_state => node['selinux']['selinux-state'], :selinux_type => node['selinux']['selinux-

我正在尝试用Chef(非常新)编写一本烹饪书,但我遇到了以下错误,我无法理解

template node '/etc/selinux/config' do 
    source "config.erb"
    mode "0644"
    variables(
        :selinux_state => node['selinux']['selinux-state'],
        :selinux_type => node['selinux']['selinux-type']
        )
    owner duser
    group dgroup 
    action :create
    ignore_failure true

end 
致命:ArgumentError:参数数目错误(给定1,应为0)


我检查了文档,据我所知,我遵循了正确的语法


有人能告诉我错误在哪里吗?

您在资源声明中有一个额外的
节点。更改:

template node '/etc/selinux/config' do 


在资源声明中有一个额外的
节点
。更改:

template node '/etc/selinux/config' do 


“我查看了文档,据我所知,我遵循的语法是正确的。”–您没有得到
SyntaxError
,因此您的语法当然是正确的。如果你的语法不正确,你的代码甚至不会被解析,你会得到一个
SyntaxError
。您将收到一个
ArgumentError
,这是一个语义错误,而不是语法错误。“有人能告诉我错误在哪里吗?”——错误消息告诉您。它包括行号和列号以及发生此错误的方法。“我检查了文档,据我所知,我遵循的语法是正确的。”–您没有得到
语法错误,因此您的语法当然是正确的。如果你的语法不正确,你的代码甚至不会被解析,你会得到一个
SyntaxError
。您将收到一个
ArgumentError
,这是一个语义错误,而不是语法错误。“有人能告诉我错误在哪里吗?”——错误消息告诉您。它包括行号和列号以及发生此错误的方法。