我需要将默认属性(从cookbook依赖项)设置为我在数据库中包含的值。我希望将属性设置为data_bag_item的值,如果不存在则设置为nil。在attribute.rb
:
if defined?(data_bag_item('databag', 'item'))
default["something"]["item"] = data_bag_item('databag', 'item')
else
default["something"]["item"] = nil
end
稍后在我自己的食谱中,我正在检查变量是否设置为nil但是它似乎失败了,因为这是一个错误(就像没有执行条件因此没有创建default["something"]["item"]
) :No resource, method, or local variable named 'default' for 'Chef::Recipe "something"'
。
我在这里做错了什么?
( EDIT 我正在学习厨师,就像我在这里学习Ruby一样。在条件限制的情况下,我完全可以错误地使用定义。我对这里的每一个评论家都开放! )
答案 0 :(得分:1)
我不确定您的食谱的完整背景,但看起来您应该更改default
的{{1}}。为什么? node
用于设置可以更改为部署的每个节点的值,但是当您运行脚本时,可以使用default
获取值。因此,只需更改node
default["something"]["item"]
,然后检查变量。