Как устранить несоответствие имен поваренной книги между 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

Этот подход имеет некоторые побочные эффекты:

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

1 ответ

Решение

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

Другие вопросы по тегам