AWS Opsworks 中的 Chef 环境
Posted
技术标签:
【中文标题】AWS Opsworks 中的 Chef 环境【英文标题】:Chef environments in AWS Opsworks 【发布时间】:2017-09-04 03:38:35 【问题描述】:由于 AWS Opsworks 向 Opsworks 添加了对 Chef 12 的支持,因此似乎支持了 Chef 环境。我对厨师很陌生。据我了解,厨师环境存储在我的食谱存储库中的environments/
-文件夹中。因此,我在这里使用这个确切的名称创建了一个带有 name 属性的 testing.json 文件。我从厨师独库那里得到了模板。
我在我的测试堆栈的自定义 json 中定义了一个 chef_environment-attribute,将此环境设置为“测试”(我的环境)。
我正在使用berks package
将食谱打包到一个 tarball 中。我通过 S3 将它们拉入我的示例 Opsworks-stack 中。我在堆栈上运行了update_custom_cookbooks
,但失败并显示厨师找不到环境测试的消息。
我首先注意到berks package
不包括环境/-文件夹,因为它不是食谱。因此,我将环境文件夹添加到压缩包中。我再次尝试更新食谱,但失败并显示相同的消息。
那么我的误解是什么? opsworks 想告诉我什么?
【问题讨论】:
【参考方案1】:OpsWorks Stacks 不支持 Chef 环境。由于它是基于 Chef Solo 的,因此支持并没有太大的价值。普通 Chef 中角色和 envs 之间的主要区别在于 envs 可以指定食谱版本要求,但是由于 Solo 要求您事先处理依赖关系解析(在您的情况下通过 berks package
),因此无法使用此功能。您可以使用相同的属性信息创建一个角色并使用它。在处理也使用 Chef Search 的 env-aware 食谱时,这可能会有点烦人,但由于那些很少在 OpsWorks Stacks 上工作,所以这不会出现太多。
【讨论】:
以上是关于AWS Opsworks 中的 Chef 环境的主要内容,如果未能解决你的问题,请参考以下文章
Chef 12 + AWS Opsworks + 从 s3 部署应用程序
从 AWS Opsworks Stacks Chef 11 迁移到 Chef 12 - 堆栈属性问题
特定的 nodejs 版本,opsworks_ruby,aws,chef 12
如何在 MacOS 中安装 chef 12 以部署到 AWS Opsworks?