【问题标题】:Chef role and environment default_attributes not accessible厨师角色和环境 default_attributes 不可访问
【发布时间】:2017-02-12 04:55:01
【问题描述】:

假设我有以下厨师角色:

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

我做错了什么?

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

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

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

    【讨论】:

    • 是的,但事实证明环境上传失败。谢谢你的好答案!
    猜你喜欢
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 2014-02-26
    相关资源
    最近更新 更多