【问题标题】:Can set up jenkins server with Opsworks可以使用 Opsworks 设置 jenkins 服务器
【发布时间】:2016-02-08 20:19:14
【问题描述】:

我正在尝试通过 AWS Opsworks 设置 Jenkins 服务器。我将https://github.com/chef-cookbooks/jenkins 添加到自定义食谱部分。并将 jenkins::master 添加到事件生命周期的设置步骤中。但是,当我尝试创建实例时,会出现以下错误:

[2015-11-07T21:12:41+00:00] ERROR: Running exception handlers
[2015-11-07T21:12:41+00:00] ERROR: Exception handlers complete
[2015-11-07T21:12:41+00:00] FATAL: Stacktrace dumped to     /var/lib/aws/opsworks/cache.stage2/chef-stacktrace.out
[2015-11-07T21:12:41+00:00] ERROR: 412 "Precondition Failed"
[2015-11-07T21:12:41+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

我还在日志文件的上方看到了这个错误:

Missing Cookbooks:
------------------
No such cookbook: apt

任何帮助将不胜感激。

【问题讨论】:

  • 嗨——我对 Opsworks 不太熟悉,但是您缺少依赖于 Jenkins 食谱的食谱(特别是 apt 食谱,但我相信还有其他食谱)。您是否真的将 jenkins 食谱和所有依赖项 上传到 Opsworks?

标签: amazon-web-services chef-infra chef-recipe aws-opsworks


【解决方案1】:

使用Berkshelf 管理cookbook 依赖项,无需将社区cookbook 存储在您自己的存储库中。

简而言之:在 Berksfile 中指定说明书依赖项及其约束(如果有),类似于:

# Berksfile
source 'https://supermarket.getchef.com'
cookbook 'apt', '2.0.0'

然后执行berks install && berks vendor --path vendor/cookbooks。确保通过执行knife cookbook upload --all --cookbook-path vendor/cookbooksknife cookbooks upload --all --include-dependencies 将所有食谱上传到您的厨师服务器(或正确管理任何其他实体,例如test-kitchen)。

如果您正确配置了所有内容,那么您应该没有问题。 确保将 Berksfile.lock 存储在您的存储库中。

【讨论】:

  • @有人能澄清这个问题吗?我面临着完全相同的问题,但我是厨师的新手。
【解决方案2】:

查看git repo 上的 metadata.rb 文件: 它清楚地表明这些是您的 OpsWorks 存储库中可能缺少的依赖项:

  • 取决于“apt”、“2.0”
  • 取决于'runit','1.5'
  • 取决于'yum','3.0'

您需要将这些食谱(在那些版本中)添加到您的 opsworks git 存储库中。 之后您可能需要运行 OpsWorks 更新自定义说明书的任务才能生效,这里是 how

【讨论】:

    猜你喜欢
    • 2015-05-28
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多