无法访问Chef角色和环境default_attributes

时间:2012-06-13 19:59:20

标签: chef

说我有以下厨师角色:

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。这是怎么回事?我误解了这些属性的作用吗?我认为值得注意的是,即使我在属性文件中为这些属性设置了默认值,我也会得到相同的结果,这让我相信我正在错误地访问属性。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

这确实是应该如何运作的。在“cookbook_name”配方中,您应该能够使用两个元素:cookbook_name:a访问:b哈希。

您是否在节点上设置了运行列表和环境以包含您列出的角色和环境?运行knife node show应该会显示此信息。