kitchen.yml 属性不会覆盖默认值 - Chef 12.12 - Kitchen 1.10

kitchen.yml attributes not override default values - Chef 12.12 - Kitchen 1.10

我有一个简单的属性文件:attributes/default.rb

default['simpleattr'] = 'file value'

kitchen.yml 里面,我

suites:
  - name: default
    run_list: 
      - recipe[simple::default]
    attributes:
     simpleattr: 'value from kitchen'
     simple:
       simpleattr: 'value from kitchen'

在食谱里面,我做的:

log  "default['simpleattr']: "+node.default['simpleattr']

而且我总是得到 'file value' 而不是 'value from kitchen' 作为输出。

我想覆盖测试中的值。

不要通过 node.default[] 访问节点值,而是使用 node[]。 Chef 的 attribute hierarchy 会根据其优先级自动计算值。

我已经重现并上传了您的问题 here on Github. The solution 也如我之前在评论中所述。不要使用

node.default['simpleattr']

而是

node['simpleattr']

然后一切如你所愿,输出为

Recipe: simple::default
  * log[default['simpleattr']: value from kitchen] action write