我试图通过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
非常感谢任何帮助。
答案 0 :(得分:2)
使用Berkshelf来管理cookbook依赖项,不需要在自己的存储库中存储社区cookbook。
简而言之:在Berksfile
中指定cookbooks依赖项及其约束(如果有),类似于:
# 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/cookbooks
或knife cookbooks upload --all --include-dependencies
将所有食谱上传到您的厨师服务器(或正确管理任何其他实体,例如test-kitchen)。
如果你正确配置了一切,那么你应该没有问题。
确保将Berksfile.lock
存储在您的存储库中。
答案 1 :(得分:0)