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 食谱版本上失败

为多个应用程序设置个性化的 Opsworks Deployment 配方

Opsworks 厨师 12 道菜谱

AWS Custom Cookbooks 将文件复制到实例

aws opsworks 多个nodejs 应用程序?