厨师食谱依赖和食谱包含

时间:2014-11-25 13:44:27

标签: chef chef-recipe

我们有一个社区食谱(A),其中包含在属性(att = A :: inc)中指定的食谱到默认食谱中,以便食谱的用户可以通过覆盖食谱属性来更改食谱。

我们有一本食谱(B),它取决于社区食谱,它覆盖了社区食谱中的属性。如果我们覆盖存储包含在默认配方(att = B :: inc)中的配方名称的属性,则该属性会被覆盖,但是由于社区食谱(A)不依赖于我们的食谱,因此厨师 - 客户端运行失败( B)预期,我们不想更改社区食谱(A)的元数据。

为了解决这个问题,我们有第三本烹饪书(C),它取决于社区食谱(A)和我们的浣熊书(B),它们对属性值att = B :: inc进行过度写作。它的默认配方。这允许食谱B :: inc被社区食谱A包括在内。如果这种方法存在任何问题,请告诉我。

1 个答案:

答案 0 :(得分:-1)

这样可以正常工作,但你不需要第三本食谱。您可以在食谱B中创建一个无操作的食谱。然后将该配方添加到节点的运行列表中。这将导致菜谱B加载到节点上。您也可以在该配方中设置节点属性,而不是直接在节点的属性中设置节点属性。然后,通过将所述配方放入您的运行列表中,您将完成这两项工作。所以,要么:

# recipe B::dummy.rb
# do nothing

OR

# recipe B::useme.rb
node['some']['attribute'] = 'B::dothis.rb'
相关问题