【问题标题】:Chef custom cookbook not installing on AWS opsworks厨师自定义食谱未安装在 AWS opsworks 上
【发布时间】:2016-05-28 03:21:19
【问题描述】:

在这个问题的后面Chef - How to run a cookbook locally 我正在尝试获取适用于 AWS opsworks 的自定义说明书。正如我在上一个问题中所说,我是 Chef 的新手,但我使用的是别人制作的食谱 https://github.com/k-kinzal/chef-php-phalcon

但是,当我将它作为自定义说明书添加到我的实例时,什么都没有安装。 从日志看来,食谱已被检索并移动到正确的位置,但日志的底部看起来像

[2016-02-16T18:48:54+00:00] INFO: Forking chef instance to converge...
[2016-02-16T18:48:54+00:00] INFO: *** Chef 12.6.0 ***
[2016-02-16T18:48:54+00:00] INFO: Chef-client pid: 2237
[2016-02-16T18:48:59+00:00] INFO: Setting the run_list to ["recipe[php-phalcon::default]"] from CLI options
[2016-02-16T18:48:59+00:00] INFO: Run List is [recipe[php-phalcon::default]]
[2016-02-16T18:48:59+00:00] INFO: Run List expands to [php-phalcon::default]
[2016-02-16T18:48:59+00:00] INFO: Starting Chef Run for app2
[2016-02-16T18:48:59+00:00] INFO: Running start handlers
[2016-02-16T18:48:59+00:00] INFO: Start handlers complete.
[2016-02-16T18:48:59+00:00] INFO: HTTP Request Returned 404 Not Found: Object not found: 
[2016-02-16T18:48:59+00:00] INFO: HTTP Request Returned 412 Precondition Failed: No such cookbook: git

================================================================================
Error Resolving Cookbooks for Run List:
================================================================================

Missing Cookbooks:
------------------
No such cookbook: git

Expanded Run List:
------------------
* php-phalcon::default

[2016-02-16T18:48:59+00:00] ERROR: Running exception handlers
[2016-02-16T18:48:59+00:00] ERROR: Exception handlers complete
[2016-02-16T18:48:59+00:00] FATAL: Stacktrace dumped to /var/chef/runs/a9eb7a78-2544-413b-aeae-075c959c98ca/local-mode-cache/cache/chef-stacktrace.out
[2016-02-16T18:48:59+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2016-02-16T18:48:59+00:00] ERROR: 412 "Precondition Failed"
[2016-02-16T18:49:00+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

我不完全确定我应该在这里做什么,git 在机器上,所以我不确定为什么这个前提条件会失败。我见过很多“伯克斯”。根据我之前的问题,我是否应该能够在机器上本地运行此配方,然后运行 ​​Berks 将所有内容打包并将其用作我的 opsworks 食谱?

我为此使用 Chef 12

谢谢

【问题讨论】:

    标签: chef-infra aws-opsworks


    【解决方案1】:

    就像@coderanger 所说,您可以将您的依赖项包含在 repo 的 Berkshelf 文件中。

    我已经向 repo 添加了一个 Berkshelf 文件 - https://github.com/k-kinzal/chef-php-phalcon/blob/master/Berksfile,并且拉取请求已合并 - https://github.com/k-kinzal/chef-php-phalcon/pull/5#discussion_r53566061

    您需要将 Opsworks 堆栈上的 Manage Berkshelf 设置为 Yes 以允许您使用 Berkshelf 文件来解决依赖关系。

    【讨论】:

      【解决方案2】:

      您需要在 OpsWorks 配置中包含 php-phalcon 食谱的所有依赖项。你可以找到这些in the metadata.rb file。 Berkshelf 是一个在内部理解依赖关系的食谱下载器,可能是编译东西的正确选择,但我对新的 OpsWorks 堆栈的了解不够好,无法确定。

      【讨论】:

      • 这是正确的答案,我更进一步,但由于某种原因,它似乎仍然没有安装任何东西。日志现在指向一个 .each 函数,而且我期望的目录似乎没有
      猜你喜欢
      • 2015-11-24
      • 2014-09-06
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 2015-06-26
      • 2013-02-18
      • 2019-03-06
      • 1970-01-01
      相关资源
      最近更新 更多