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

Chef infra 如何在包装器cookbook中分离Chef属性文件以防止名称空间冲突?,chef-infra,wrapper,cookbook,Chef Infra,Wrapper,Cookbook,我正在为Apache cookbook创建一个包装器cookbook,以处理支持Chef、Cobbler和其他一些cookbook所需的更改 我希望避免让Chef recipe属性覆盖Cobbler recipe属性等(避免名称空间冲突) 创建单独的配方和模板很容易;只需创建不同的文件名。如何保持属性独立并防止名称空间冲突?可以创建不同的属性文件,但是否可以告诉Chef每个食谱只使用一个属性文件(recipes/Chef.rb->attributes/Chef.rb)?使用cookbook名称命

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

我希望避免让Chef recipe属性覆盖Cobbler recipe属性等(避免名称空间冲突)


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

使用cookbook名称命名属性只是一种惯例,在Chef中,属性被其他机制覆盖,如包装器cookbooks,角色或环境

Chef有关于如何设置节点属性的规则,并在文档中称之为“优先级”:

简言之,cookbooks通常设置一个“默认”值,该值为最低级别,并允许其他cookbooks使用“正常”值进行覆盖。 例如,关于如何工作,我有两本包装食谱

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

检查“厨师配方属性”没有这样的。你可以在菜谱中设置属性(但我不鼓励这样做,因为以后很难理解),你的问题对于你希望避免的东西非常不清楚。对于其他人来说@MarkOConnor的答案是理解包装烹饪书概念的方法。