我是厨师和berkshelf的新手,非常困惑我曾尝试在开放式问题上寻求帮助,但没有运气请帮助我..
谢谢
答案 0 :(得分:4)
Berkshelf是一本食谱依赖经理。
假设您已经安装了chef development kit,请先生成一本食谱:
$ chef generate cookbook demo
$ tree
.
└── demo
├── Berksfile
├── chefignore
├── metadata.rb
├── README.md
├── recipes
│ └── default.rb
├── spec
│ ├── spec_helper.rb
│ └── unit
│ └── recipes
│ └── default_spec.rb
└── test
└── integration
├── default
│ └── serverspec
│ └── default_spec.rb
└── helpers
└── serverspec
└── spec_helper.rb
Berksfile保存配置,其格式为documented on the website。 cookbook生成器创建一个默认设置,告诉berkshelf从Chef超市下载依赖项并使用元数据文件列出这些依赖项:
source 'https://supermarket.chef.io'
metadata
所以让我们编辑metadata.rb文件,将mysql添加为依赖
name 'demo'
maintainer 'The Authors'
maintainer_email 'you@example.com'
license 'all_rights'
description 'Installs/Configures demo'
long_description 'Installs/Configures demo'
version '0.1.0'
depends "mysql"
现在,如果您决定运行berkshelf,它将自动为您解决您的cookbook依赖项。
$ berks vendor cookbooks
Resolving cookbook dependencies...
Fetching 'demo' from source at .
Using demo (0.1.0) from source at .
Using mysql (8.1.1)
Vendoring demo (0.1.0) to cookbooks/demo
Vendoring mysql (8.1.1) to cookbooks/mysql
希望这可以解答您的一些问题,但总结一下,我建议您查看test kitchen吗?食谱生成器还将此配置为使用Vagrant同时运行厨师并同时测试您的食谱:
$ kitchen test default-ubuntu-1404
做一个快乐的厨师!