Berkshelf — менеджер зависимостей поваренной книги.
Предполагая, что вы уже установили комплект для разработки шеф-повара, сначала создайте кулинарную книгу:
$ 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 содержит конфигурацию, и его формат задокументирован на веб-сайте. Генератор поваренных книг создает настройку по умолчанию, которая указывает berkshelf загружать зависимости из супермаркета Chef и использовать файл метаданных для перечисления этих зависимостей:
source 'https://supermarket.chef.io'
metadata
Итак, давайте отредактируем файл metadata.rb, добавив mysql в качестве зависимости.
name 'demo'
maintainer 'The Authors'
maintainer_email '[email protected]'
license 'all_rights'
description 'Installs/Configures demo'
long_description 'Installs/Configures demo'
version '0.1.0'
depends "mysql"
Так что теперь, если вы решите запустить berkshelf, он автоматически разрешит зависимости вашей кулинарной книги.
$ 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
Надеюсь, это ответит на некоторые из ваших вопросов, но в заключение могу ли я порекомендовать вам взглянуть на тестовую кухню? Генератор поваренной книги также настраивает это так, чтобы использовать Vagrant для одновременного запуска шеф-повара и проверки вашей поваренной книги:
$ kitchen test default-ubuntu-1404
Будь счастливым шеф-поваром!
person
Mark O'Connor
schedule
20.11.2016