我正在尝试使用 AWS 食谱和 Berkshelf 在 Vagrant 上模拟 Opsworks 部署。在此处引用AWS 文档-
对于 Chef 11.10 堆栈,在 AWS OpsWorks 安装内置、自定义和 Berkshelf 说明书后,它会按以下顺序将它们合并到一个公共目录中:
- 内置食谱。
- Berkshelf 食谱,如果有的话。
- 定制食谱,如果有的话。
当 AWS OpsWorks 执行此合并时,它会复制目录的全部内容,包括配方。如果有任何重复,则适用以下规则:
- Berkshelf 食谱的内容优先于内置的食谱。
- 定制食谱的内容优先于 Berkshelf 食谱。
为了说明这个过程是如何工作的,请考虑以下场景,其中所有三个说明书目录都包含一个名为 mycookbook 的说明书:
- 内置说明书——mycookbook 包括一个名为 someattributes.rb 的属性文件、一个名为 sometemplate.erb 的模板文件和一个名为 somerecipe.rb 的食谱。
- Berkshelf 食谱——mycookbook 包括 sometemplate.erb 和 somerecipe.rb。
- 定制食谱——mycookbook 包括 somerecipe.rb。
合并后的食谱包含以下内容:
- someattributes.rb 来自内置说明书。
- 来自 Berkshelf 食谱的 sometemplate.erb。
- somerecipe.rb 来自自定义食谱。
现在,有没有一种干净的方法可以在当地流浪者中做到这一点?Berkshelf 还是其他?人们遵循什么目录结构以及在本地测试时如何合并?