AWS Opsworks 中的 Chef 环境
Chef environments in AWS Opsworks
自从 AWS Opsworks 向 Opsworks 添加了对 Chef 12 的支持后,似乎也支持 Chef 环境。我对厨师很陌生。据我了解,厨师环境存储在我的食谱库中的 environments/
文件夹中。因此,我在此处创建了一个 testing.json 文件,其名称属性使用了这个确切的名称。我从大厨doku那里得到了模板
我在测试堆栈的自定义 json 中定义了一个 chef_environment-attribute,将此环境设置为 'testing'(我的环境)。
我正在使用 berks package
将食谱打包成 tarball。我通过 S3 将它们拉入我的示例 Opsworks 堆栈中。我 运行 update_custom_cookbooks
在我的堆栈上失败,并显示厨师找不到环境测试的消息。
我首先注意到 berks package
不包含 environment/-folder,因为它不是食谱。因此,我将环境文件夹添加到压缩包中。我尝试再次更新食谱,但失败并显示相同的消息。
那么我的误解是什么? opsworks 想告诉我什么?
OpsWorks Stacks 不支持 Chef 环境。由于它基于 Chef Solo,因此支持并没有太多价值。普通 Chef 中角色和 envs 之间的主要区别在于 envs 可以指定 cookbook 版本要求,但是由于 Solo 要求您事先处理依赖项解析(在您的情况下通过 berks package
),因此无法使用此功能。您可以创建一个具有相同属性信息的角色并使用它来代替。在处理也使用 Chef Search 的环境感知食谱时,这可能会有点烦人,但由于这些食谱很少在 OpsWorks Stacks 上工作,所以这并不常见。
自从 AWS Opsworks 向 Opsworks 添加了对 Chef 12 的支持后,似乎也支持 Chef 环境。我对厨师很陌生。据我了解,厨师环境存储在我的食谱库中的 environments/
文件夹中。因此,我在此处创建了一个 testing.json 文件,其名称属性使用了这个确切的名称。我从大厨doku那里得到了模板
我在测试堆栈的自定义 json 中定义了一个 chef_environment-attribute,将此环境设置为 'testing'(我的环境)。
我正在使用 berks package
将食谱打包成 tarball。我通过 S3 将它们拉入我的示例 Opsworks 堆栈中。我 运行 update_custom_cookbooks
在我的堆栈上失败,并显示厨师找不到环境测试的消息。
我首先注意到 berks package
不包含 environment/-folder,因为它不是食谱。因此,我将环境文件夹添加到压缩包中。我尝试再次更新食谱,但失败并显示相同的消息。
那么我的误解是什么? opsworks 想告诉我什么?
OpsWorks Stacks 不支持 Chef 环境。由于它基于 Chef Solo,因此支持并没有太多价值。普通 Chef 中角色和 envs 之间的主要区别在于 envs 可以指定 cookbook 版本要求,但是由于 Solo 要求您事先处理依赖项解析(在您的情况下通过 berks package
),因此无法使用此功能。您可以创建一个具有相同属性信息的角色并使用它来代替。在处理也使用 Chef Search 的环境感知食谱时,这可能会有点烦人,但由于这些食谱很少在 OpsWorks Stacks 上工作,所以这并不常见。