Ответов на вопрос similar question on this, но я понял, что моя проблема связана с концептуализацией того, как это может работать.Как выполнять роли в тестовой кухне, не помещая все в файл berksfile?
Я читал кучу статей, но я все еще очень смущен.
Вот что я делаю сейчас:
применяет набор базовых функций для всех моих узлов (windows_base, linux_base и т.д.). Эти роли применяют рецепты, которые делают такие вещи, как установка часового пояса, присоединение к AD и другая конфигурация, которая требуется на всех серверах, независимо от их назначения.
Теперь у меня есть другие кулинарные книги, которые устанавливают приложения и вносят конкретные изменения конфигурации для определенных целей. Хотя эти кулинарные книги обычно должны «работать» (это означает, что они не будут вызывать ошибки), не требуя, чтобы базовые роли запускались в первую очередь, они все равно могут зависеть от базовых ролей, чтобы выполнить некоторую начальную конфигурацию сервера и могут работать некорректно, без применения первого.
Поэтому, когда я тестирую одну из своих кулинарных книг на тестовой кухне, я иногда хочу включить базовую роль в список запуска (до рецептов поваренных книг, которые я тестирую).
Я загрузил свои роли с моего сервера с помощью загрузки ножей и указал их на кухне.yml через role_path, но, видимо, мне все еще нужно рассказать тестовую кухню, где можно взять мои кулинарные книги в роли?
Теперь вы можете увидеть предыдущий вопрос, который я попросил, было предложено использовать berkshelf, но если я это сделаю, мне нужно указать ВСЕ рецепты из базовых ролей в berksfile поваренной книги, которую я тестирую правильно? Это не имеет смысла для меня, потому что мне не нужно делать это при применении роли к узлу через сервер Chef. Я также не хочу, чтобы все эти зависимости были в моем berksfile, потому что, как я уже сказал, они зависят от ролей, но не обязательно.
Как использовать роли в тестовой кухне, как они используются на сервере шеф-повара, то есть я просто применяю роль к списку запуска узлов.
Должен сказать, что я также попытался определить путь поваренной книги (cookbooks_path :) в kitchen.yml, но это не сработало эфиром.
Это мой .kitchen.yml
---
driver:
name: hyperv
parent_vhd_folder: c:\HyperV\VHDs\
parent_vhd_name: 2012R2.vhdx
vm_switch: NAT
memory_startup_bytes: 2GB
provisioner:
name: chef_zero
roles_path: c:\.chef\roles
cookbooks_path: ..\
transport:
password: myPass123$
platforms:
- name: windows-2012r2
suites:
- name: default
run_list:
- role[linux_base]
attributes:
Так будет ли работать/иметь смысл установить 'cookbooks_path' в моей' .kitchen.yml' на 'C: \ Users \ me \ .berkshelf' (моя папка berkshelf)? Или berkshelf переопределяет 'cookbooks_path' в' .kitchen.yml'? – red888
Нет, папка хранения Berkshelf не организована таким образом, что шеф-повар может ее прочитать. Кухня запускает 'berks vendor' для вас в временную папку для вывода информации в правильном формате. – coderanger