我想把我的一本食谱,nginx-passenger,部署到opsworks。 我已经使用testkitchen在本地testing了食谱,所有食谱和testing都成功通过了。 但是,在使用opsworks时,nginx-passenger :: default的运行会失败,并显示错误“无法满足nginx的版本限制”。 Opsworks已经有一个名字完全一样的菜谱,但版本不同,所以可能是由于这个原因造成的。
我已经search了这个错误,只是发现以下https://forums.aws.amazon.com/thread.jspa?threadID=153656
但是这并不能提供真正的解决scheme。
我的文件如下所示:
my_cookbooks / Berksfile:
source "https://supermarket.getchef.com" cookbook 'user', '~> 0.3.0' cookbook 'apt', '~> 2.6.0' cookbook 'nginx', '~> 2.7.4'
my_cookbooks / nginx的乘客/ metadata.rb
name "nginx-passenger" version "0.1.0" depends 'nginx', '~> 2.7.4' depends 'apt', '~> 2.6.0'
你能推荐一个解决这个问题的方法吗? 我真的想在这里使用社区的nginx食谱。
编辑:赦免,我忘了提到一些细节。 我正在尝试创build一个自定义图层,但是我还没有给它分配任何食谱。 我创build了一个实例,更新了自定义食谱,并手动执行了食谱nginx-passenger :: default。
命名冲突是OpsWorks食谱的已知问题,并不是一个简单的解决scheme。
你可能需要做的是将nginx和nginx客户端食谱下载到你的食谱目录中,将nginx食谱重命名为nginx-community,然后将nginx客户端食谱中的所有引用从nginx更新到nginx-community。
另一方面,你应该考虑一下你是否真的需要nginx和nginx-passenger社区食谱。 OpsWorks有nginx和passenger的自己的食谱,只是默认的ruby栈使用Apache。 你可能只需要在nginx的食谱中覆盖一个或两个文件,使其与乘客工作。