Как устранить несоответствие имен поваренной книги между Berks и Chef-Solo?
Продолжение этого ответа.
Запуск шеф-повара соло:
sudo chef-solo -c config.rb -j config.json
Starting Chef Client, version 12.16.42
resolving cookbooks for run list: ["terraform"]
================================================================================
Error Resolving Cookbooks for Run List:
================================================================================
Missing Cookbooks:
------------------
No such cookbook: terraform
Expanded Run List:
------------------
* terraform
Platform:
---------
x86_64-linux
Поваренные книги, установленные с использованием berkshelf, содержат постфикс версии
user@host ~ $ ls ~/.berkshelf/cookbooks/
terraform-0.5.3
Если terraform-0.5.3 переименовывается в terraform и снова запускается chef-solo, поваренная книга terraform найдена, но не может быть найдена другая:
Missing Cookbooks:
------------------
No such cookbook: build-essential
Попытка решить проблему
Проблема была решена путем удаления версии postfix из всех кулинарных книг, которые находятся в следующем каталоге:
user@host ~ $ ls ~/.berkshelf/cookbooks/
ark ark-1.1.0 build-essential-7.0.2 compat_resource compat_resource-12.16.2 mingw mingw-1.2.4 ohai ohai-4.2.2 seven_zip seven_zip-2.0.2 terraform-0.5.3 windows windows-2.1.1
Этот подход имеет некоторые побочные эффекты:
- Каждый раз, когда запускается установка Berks, поваренные книги загружаются снова
- Постфикс нужно удалять каждый раз
1 ответ
Решение
Вы не используете папку хранения Berkshelf напрямую, это папка хранения. Чтобы экспортировать в формате, который может использовать Chef, запустите berks vendor FOLDERNAME/
,