说我有以下厨师角色:
name "test"
description "role for test"
run_list %w(recipe[cookbook_name])
default_attributes(
:cookbook_name => {
:a => 1
}
)
以及相应的环境:
name "test environment"
description "environment for test"
default_attributes(
:cookbook_name => {
:b => 2
}
)
然后在我的食谱中我有类似的东西:
parent = default[:cookbook_name]
parent[:c] = 3
attribute documentation会让我相信这些内容可以在node[:cookbook_name][:a]
或node[:cookbook_name][:b]
的配方上下文中找到。但是,当我尝试访问实际食谱中的那些时,我得到nil
。这是怎么回事?我误解了这些属性的作用吗?我认为值得注意的是,即使我在属性文件中为这些属性设置了默认值,我也会得到相同的结果,这让我相信我正在错误地访问属性。
我做错了什么?
答案 0 :(得分:2)
这确实是应该如何运作的。在“cookbook_name”配方中,您应该能够使用两个元素:cookbook_name
和:a
访问:b
哈希。
您是否在节点上设置了运行列表和环境以包含您列出的角色和环境?运行knife node show
应该会显示此信息。