我看了一下BerkShelf documentation。我已经能够弄清楚它代表了管理食谱依赖关系。所以,我猜想我想用java构建一台机器。我第一次产生我自定义的食谱:与berkshelf,厨师和流浪汉混淆
chef generate cookbook custom-java
我Berksfile
是:
source 'https://supermarket.chef.io'
metadata
cookbook 'java'
和我metadata.rb
是:
name 'custom-java'
...
version '0.1.0'
在那之后,我只需运行berks install
,所以所有依赖关系已解决并位于~\.berkshelf\cookbooks
之下。
不过,我不太清楚如何使用我的custom-java
进入我的流浪配置。我需要做什么才能让流浪汉将这本食谱插入我的机器?
我的无业游民结构为:
VagrantFile
├───chef
│ ├───cookbooks
│ │ ├───(((1))) <<<<<<<<<<<<<<<<<<<<<<
│ ├───roles
│ │ ├───java-dev-workstation.rb
Vagrantfile
内容是:
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.provision "chef_solo" do |chef|
chef.roles_path = "chef/roles"
chef.cookbooks_path = "chef/cookbooks"
chef.add_role "java-dev-workstation"
end
end
而且java-dev-workstation.rb
:
name "java-dev-workstation"
default_attributes(
# Because it's Oracle, we need to agree to the terms and conditions.
:custom-java => { >>>>>>>>> (((2)))
:install_flavor => 'oracle',
:jdk_version => '8',
:accept_license_agreement => true,
:oracle => { "accept_oracle_download_terms" => true }
}
)
run_list(
"recipe[java]"
)
我用厨师31年12月18日。
- 在
(((1)))
:我需要 “进口” 我custom-java
菜谱,怎么样?它位于哪里? - 对
(((2)))
:我应该如何配置java
?
编辑 我设置chef.cookbooks_path
:
config.vm.provision "chef_solo" do |chef|
chef.roles_path = "chef/roles"
chef.cookbooks_path = 'D:\projects\living\vagrant\production\berk\custom-java'
chef.add_role "java-dev-workstation"
end
EDIT2
尽管如此,custom-java
依赖现在还没有解决:
================================================================================
Error Resolving Cookbooks for Run List:
================================================================================
Missing Cookbooks:
------------------
No such cookbook: yum
Expanded Run List:
------------------
* custom-java
Platform:
---------
x86_64-linux
我metadata.rb
内容是:
name 'berk'
...
version '0.1.0'
supports 'centos'
depends 'yum'
目前,所有的依赖都位于~/.berkshelf/cookbooks
。这似乎shef-solo
没有寻找它...
您可以将'custom-java'添加到'java-dev-workstation.rb'角色的run_list。 –
如果我没有在任何地方上传它,流浪者如何解决'custom-java'食谱? – Jordi
您使用'chef_solo'供应并提供'cookbooks_path' - 这已经足够了。 –