我有一个食谱这是设置一些简单的 Apache 配置,我使用的是来自超级市场。
我正在尝试使用 AWS OpsWorks 和 Chef 11.10 来运行我的食谱。
当我尝试在 OpsWorks 中运行配方时出现以下错误:
Missing Cookbooks:
------------------
Could not satisfy version constraints for: apache2
我想知道是否发生了什么事情,因为 OpsWorks 已经有一个apache2
版本的食谱1.0.0
,而我的食谱依赖于3.0.1
我想要的超市版本,所以它出现了版本不匹配的情况。
到目前为止,我还没有成功尝试完全覆盖apache2
OpsWorks 自动附带的食谱,如果可能的话,这可能是理想的选择。
有什么想法或主意我可以尝试一下吗?
答案1
OpsWorks 中的配方名称冲突是一个众所周知的问题。
一种选择是下载社区食谱并将其重命名为类似 apache-community 的名称,然后将其与其他食谱捆绑在一起。
看起来您正在尝试将 Python 部署到 OpsWorks,因此您可能还可以找到针对此目的的 OpsWorks 特定手册,例如:https://github.com/alecpm/opsworks-web-python
最后,您可能只需要权衡一下社区手册到底有多有用。如果您只需要配置几个选项,那么使用 OpsWorks Apache 手册可能会更容易,或者制作您自己的修改配置的配方。
答案2
在即将发布的 Chef 12 版本中,OpsWorks 将有两个不同的 Chef 运行,一个用于核心/最小 OpsWorks 设置,一个用于自定义说明书。第二个运行没有说明书,只有您自己的说明书,因此不会发生命名冲突。