Chef infra 厨师长客户端顶层和底层属性

Chef infra 厨师长客户端顶层和底层属性,chef-infra,Chef Infra,我正在构建一本对节点属性有要求的食谱。如果节点属性不存在,我希望退出客户端运行并返回相应的错误。我试图在顶级属性不存在时退出,即: # Check for valid keepalived configuration on node if node.default['keepalived'] = "" Chef::Application.fatal!("No keepalived configuration was set on the node. Please add some.") en

我正在构建一本对节点属性有要求的食谱。如果节点属性不存在,我希望退出客户端运行并返回相应的错误。我试图在顶级属性不存在时退出,即:

# Check for valid keepalived configuration on node
if node.default['keepalived'] = ""
  Chef::Application.fatal!("No keepalived configuration was set on the node. Please add some.")
end
如果节点['keepalived']是一个数组(应该是这样的),则会失败。如果它是空的(不存在),那么它就通过了


如果没有设置节点['keepalived'],我应该使用什么语句退出,但如果有子值,我应该继续?

有两个问题,一个是您出错了
=
vs
=
。其次,您要检查的是:

if !node['keepalived'] || node['keepalived'].empty?

两个问题,一个是你搞砸了,另一个是你搞砸了。其次,您要检查的是:

if !node['keepalived'] || node['keepalived'].empty?

该死的那些=侥幸:)该死的那些=侥幸:)