Berkshelf:为 opsworks 合并多个同名的食谱
Posted
技术标签:
【中文标题】Berkshelf:为 opsworks 合并多个同名的食谱【英文标题】:Berkshelf: Merging multiple cookbooks with same name for opsworks 【发布时间】:2014-11-27 02:17:53 【问题描述】:我正在尝试使用 AWS 说明书和 Berkshelf 在 Vagrant 上模拟 Opsworks 部署。 引用AWS doc here -
对于 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。
现在,在本地 vagrant 中是否有一种干净的方法可以做到这一点? Berkshelf 还是其他? 人们在本地测试时遵循什么目录结构以及如何合并?
【问题讨论】:
我们在这里讨论这个问题:github.com/aws/opsworks-cookbooks/issues/217 你有没有想出这个问题的答案? @SamElliott,不。上面提到的 opsworks github 项目提出了各种问题,但还没有发生任何事情。这些帖子中有些人提出了替代方案,您可以尝试一下。 【参考方案1】:Virtualizing AWS OpsWorks on Local Vagrant 可能会有所帮助。
【讨论】:
以上是关于Berkshelf:为 opsworks 合并多个同名的食谱的主要内容,如果未能解决你的问题,请参考以下文章
Chef/OpsWorks:实例在新发布的 Windows 食谱版本上失败