AWS Opsworks中的Chef环境

时间:2017-04-08 21:08:51

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

由于AWS Opsworks将对Chef 12的支持添加到Opsworks,因此似乎支持Chef环境。我对厨师很新。据我所知,厨师环境存储在我的食谱库中的environments/ - 文件夹中。这就是我使用这个确切的名称创建了一个带有name属性的testing.json文件。我从厨师doku那里得到了模板。

我在测试堆栈的自定义json中定义了一个chef_environment属性,将此环境设置为“testing”(我的环境)。

我正在使用berks package将菜谱包装在tarball中。我将这些通过S3引入我的示例Opsworks-stack。我在我的堆栈上运行update_custom_cookbooks失败了,主厨无法找到环境测试。

我首先注意到berks package不包含环境/文件夹,因为它不是食谱。因此,我将环境文件夹添加到tarball。我尝试再次使用相同的消息更新了烹饪书。

那么我的误解是什么?什么是opsworks试图告诉我?

1 个答案:

答案 0 :(得分:1)

OpsWorks Stacks不支持Chef环境。因为它基于Chef Solo,所以在支持方面确实没什么价值。普通Chef中的角色和环境之间的主要区别在于envs可以指定cookbook版本要求,但是由于Solo要求您事先处理依赖项解析(在您的情况下通过berks package),因此无法使用此功能。您可以使用相同的属性信息创建角色,然后使用它。在处理同样使用Chef Search的env-aware cookbook时,这可能会有些烦人,但是因为那些很少在OpsWorks Stacks上工作,所以这并没有多少。