Назад | Перейти на главную страницу

Как устранить несоответствие названий в кулинарной книге у 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

Попытка решить проблему

Проблема была решена путем удаления постфиксной версии из всех кулинарных книг, находящихся в следующем каталоге:

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

У этого подхода есть некоторые побочные эффекты:

  1. Каждый раз, когда запускается установка berks, кулинарные книги загружаются снова.
  2. Постфикс нужно каждый раз удалять

Вы не используете папку хранилища berkshelf напрямую, это папка хранилища. Чтобы экспортировать в формате, который может использовать Chef, запустите berks vendor FOLDERNAME/.