与berkshelf的厨师独奏:食谱未解决

时间:2017-11-30 12:13:58

标签: vagrant chef berkshelf

我已经创建了这个Vagrantfile的提供者部分:

config.vm.provision "chef_solo" do |chef|
    chef.add_recipe "wildfly"
end

我收到此错误:

==> default: Error Resolving Cookbooks for Run List:
==> default:
==> default: Missing Cookbooks:
==> default: ------------------
==> default: No such cookbook: wildfly

所以,我已经创建了Berksfilemetadata.rb个文件:

Berksfile

source 'https://supermarket.chef.io'
metadata

metadata.rb

name 'webapi'
maintainer 'The Authors'
maintainer_email 'you@example.com'
license 'all_rights'
description 'Installs/Configures webapi'
long_description 'Installs/Configures webapi'
version '0.1.0'

depends 'java_se', '~> 9.0.1'
depends 'wildfly', '~> 0.4.0'

那么,我已经执行了berks install命令。我发现的第一个问题是我没有完全发现berks放置食谱的地方。它似乎工作正常,但是,我找不到cookbooks依赖项所在的位置,我的意思是,在执行.\cookbooks命令后不会创建berks install文件夹。

Resolving cookbook dependencies...
Fetching 'olingo' from source at .
Fetching cookbook index from https://supermarket.chef.io...
Using apt (6.1.4)
Using homebrew (4.2.0)
Using java (1.50.0)
Using java_se (9.0.1)
Using ohai (5.2.0)
Using olingo (0.1.0) from source at .
Using wildfly (0.4.0)
Using yum (5.1.0)
Using windows (3.4.0)

无论如何,我再次执行了vagrant provisionwildfly食谱未得到解决:

The cookbook path 'D:/projects/swiller/querydsl/olingo/infrastructure/cookbooks' doesn't exist. Ignoring...
Running provisioner: chef_solo...
==> default: Error Resolving Cookbooks for Run List:
==> default:
==> default: Missing Cookbooks:
==> default: ------------------
==> default: No such cookbook: wildfly

1 个答案:

答案 0 :(得分:2)

您需要使用vagrant-berkshelf插件,或使用berks vendor命令将所有cookbook写入文件夹,然后指向Vagrant(这是插件在内部执行的操作)。 berks install只会将它们下载到您的工作站,它不会将菜谱放在除Berkshelf之外的其他任何地方/格式的地方。