【问题标题】:Error running Python on OpsWorks with Chef + Berkshelf使用 Chef + Berkshelf 在 OpsWorks 上运行 Python 时出错
【发布时间】:2016-09-26 22:51:19
【问题描述】:

我正在尝试让 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 false,请设置 在您的 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 食谱一起使用,它不会 与 Chef 11.x 客户端合作,这些用户必须固定他们的食谱 到旧版本或升级。

我尝试固定到旧版本的 python,但仍然无法正常工作。基本上,我知道这个实例可以运行(以前的维护者已经运行),但我不确定我缺少什么。

【问题讨论】:

    标签: deployment chef-infra aws-opsworks berkshelf


    【解决方案1】:

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

    cookbook 'build-essential', '= 3.2.0'
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 所以我应该补充一点,我接管了一个在 Chef 11.10 下配置的其他地方工作的系统。它最初使用 python 而不是 poise-python 但我在运行它时遇到了不同的错误,还抱怨 Chef 版本。我将使用该信息更新问题,但基本上我试图避免升级 Chef 版本,因为我不熟悉它。
      • 我没有在 OpsWorks 上进行任何测试,但旧的 python 食谱目前已完全弃用且不受支持。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 2015-03-08
      • 2018-02-27
      相关资源
      最近更新 更多