Berkshelf:为opsworks合并多个同名的食谱

时间:2014-10-02 05:33:26

标签: amazon-web-services chef-solo aws-opsworks berkshelf

我正在尝试使用AWS cookbook和Berkshelf模拟Vagrant上的Opsworks部署。 引自AWS doc here -

  

对于Chef 11.10堆栈,在AWS OpsWorks安装内置,自定义和Berkshelf烹饪书之后,它按以下顺序将它们合并到一个公共目录:

     
      
  1. 内置食谱。
  2.   
  3. Berkshelf食谱,如果有的话。
  4.   
  5. 自定义食谱,如果有的话。
  6.         

    当AWS OpsWorks执行此合并时,它会复制目录的全部内容,包括配方。如果有任何重复,则适用以下规则:

         
        
    • Berkshelf食谱的内容优先于内置食谱。
    •   
    • 自定义食谱的内容优先于Berkshelf食谱。
    •   
         

    为了说明此过程的工作原理,请考虑以下场景,其中所有三个cookbook目录都包含名为mycookbook的食谱:

         
        
    • 内置cookbook - mycookbook包含名为someattributes.rb的属性文件,名为sometemplate.erb的模板文件以及名为somerecipe.rb的食谱。
    •   
    • Berkshelf cookbooks - mycookbook包括sometemplate.erb和somerecipe.rb。
    •   
    • 自定义食谱 - mycookbook包含somerecipe.rb。
    •   
         

    合并的食谱包含以下内容:

         
        
    • 来自内置菜谱的someattributes.rb。
    •   
    • 来自Berkshelf食谱的sometemplate.erb。
    •   
    • 来自自定义食谱的somerecipe.rb。
    •   

现在,有没有一种干净的方式在当地流浪汉这样做? Berkshelf还是其他? 人们遵循什么目录结构以及在本地测试时如何合并?

1 个答案:

答案 0 :(得分:-1)