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
我有一个简单的属性文件: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