Chef infra 使用默认属性值,除非在节点属性中重写
对于模板中使用的Chef infra 使用默认属性值,除非在节点属性中重写,chef-infra,Chef Infra,对于模板中使用的chef中的属性,使用默认值最礼貌的方式是什么 因此在default/attributes.rb中,我有一个默认值: default['my_attribute'] = 'some_default_value' 我想在一些具有节点属性的选定节点上覆盖它: node['my_attribute'] = 'some_defined_value' 在我的模板中,我只想使用: @my_attribute 它将从默认值['my_属性']或节点['my_属性'](如果已定义)获取值 做
chef
中的属性,使用默认值最礼貌的方式是什么
因此在default/attributes.rb中,我有一个默认值:
default['my_attribute'] = 'some_default_value'
我想在一些具有节点属性的选定节点上覆盖它:
node['my_attribute'] = 'some_defined_value'
在我的模板中,我只想使用:
@my_attribute
它将从默认值['my_属性']或节点['my_属性'](如果已定义)获取值
做这件事最有礼貌和厨师的方式是什么?哦
首先,我建议你看一下这本书,以供参考
您是正确的,在属性文件中,定义如下内容(注意,在烹饪书之后为属性命名是常见的做法):
然后在配方中,您可以通过调用节点来变异节点
对象。set
:
node.set['cookbook']['attribute'] = 'new_value'
这将保存当前节点状态并将其保留回服务器(如果使用Chef服务器)
然后,在模板中
资源中,直接传入值:
template '/tmp/foo.txt' do
variables(
:my_attribute => node['cookbook']['attribute']
)
end
template '/tmp/foo.txt' do
variables(
:my_attribute => node['cookbook']['attribute']
)
end