如何分隔Chef属性文件以防止包装器cookbook中的名称空间冲突?

时间:2015-08-28 22:50:39

标签: chef wrapper cookbook

我正在为Apache cookbook创建一个包装器食谱,以处理支持Chef,Cobbler和其他一些烹饪书所需的更改。

我想避免让Chef配方属性覆盖Cobbler配方属性等(避免名称空间冲突)。

创建单独的食谱和模板很容易;只需创建不同的文件名。如何保持属性分离并防止名称空间冲突?可以创建不同的属性文件,但是可以告诉Chef每个配方只使用一个属性文件(recipes / chef.rb - > attributes / chef.rb)?

1 个答案:

答案 0 :(得分:1)

使用cookbook名称命名属性仅仅是一种约定,在Chef属性中被设计为被其他机制覆盖,如包装器cookbook,角色或环境。

Chef有关于如何设置节点属性的规则以及它所调用的文档"优先级":

https://docs.chef.io/attributes.html#attribute-precedence

简短的烹饪书通常设置一个"默认"最低级别的值,并允许其他烹饪书使用"正常"值。 例如,这是如何工作的,我有两个包装食谱

希望这会有所帮助。属性优先权是一个重要但微妙的厨师概念。