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