使用Chef + Berkshelf在OpsWorks上运行Python时出错

时间:2016-05-28 19:37:15

标签: deployment chef aws-opsworks berkshelf

我试图让Python 2.7在我的OpsWorks实例上运行但是我一直遇到错误启动。

我的OpsWork堆栈设置为Chef版本11.10和Berkshelf版本3.2.0。

我的metadata.rb中包含以下内容:

depends           "poise-python"
depends           "apt", ">= 1.8.2"

我的Berksfile设置为:

source "https://supermarket.chef.io"

cookbook 'poise-python'
cookbook 'apt'

每次发布​​时,我都会收到以下错误,而且我不确定如何解决:

  

Halite与no_lazy_load不兼容,请设置   在Chef配置文件中,no_lazy_load为true。

我尝试添加chef/configuration.rb文件以将no_lazy_load设置为true,但它似乎无法正常工作。坦率地说,我是OpsWorks和Chef的新手,所以我可能会遗漏一些非常基本的东西。

更多信息

我正在接管的筹码最初引用python代替poise-python,但是当我试图运行时,我已经从那里切换到解决不同的错误(但我猜,相关)那个:

  

此资源是使用Chef 12.5自定义资源编写的,并且需要   至少Chef 12.0与compat_resource cookbook一起使用,它不会   与Chef 11.x客户合作,这些用户必须固定他们的烹饪书   到旧版本或升级。

我尝试固定到较早版本的python,但仍然无法使其正常工作。基本上,我知道这个实例可以运行(之前的维护者已经开始了)但是我不确定我错过了什么。

2 个答案:

答案 0 :(得分:2)

经过一些谷歌搜索后,我想出了如何在不升级Chef版本的情况下完成这项工作。我将以下行添加到我的Berksfile中:

cookbook 'build-essential', '= 3.2.0'

答案 1 :(得分:0)

我的食谱与Chef 11不兼容,您必须将堆栈升级为Chef 12。