2015-08-28 4 views
1

Я создаю поваренную книгу обертки для поваренной книги Apache для обработки изменений, необходимых для поддержки шеф-повара, сапожника и нескольких других поваренных книг.Как отделить файлы атрибутов шеф-повара, чтобы предотвратить конфликты пространства имен в поваренной книге обертки?

Я бы хотел, чтобы атрибуты рецепта шеф-повара не переписывали атрибуты рецептов сапожника и т. Д. (Избегайте конфликтов пространства имен).

Создание отдельных рецептов и шаблонов очень просто; просто создайте разные имена файлов. Как сохранить атрибуты отдельно и предотвратить конфликты имен? Можно создавать разные файлы атрибутов, но может ли Шеф рассказывать только один файл атрибута для каждого рецепта (recipes/chef.rb -> attributes/chef.rb)?

+0

проверьте это [dicussion] (http://stackoverflow.com/a/15290015/3961156) –

+0

«Атрибуты рецепта шеф-повара» Нет ничего подобного. Вы можете установить атрибуты в рецептах (но я отговариваю их, так как это трудно понять позже), ваш вопрос очень неясен в отношении того, чего вы хотите избежать. Для остальных @ ответ MarkOConnor - это способ понять концепцию кулинарных книг-оберток. – Tensibai

ответ

1

Namespacing атрибута, использующего имя поваренной книги, является просто соглашением, атрибуты Chef предназначены для переопределения другими механизмами, такими как кулинарные книги, роли или среды.

Chef имеет правила о том, как атрибуты узла установлены и в документации это вызов «приоритет»:

https://docs.chef.io/attributes.html#attribute-precedence

Коротко поваренных обычно устанавливается значение «по умолчанию», который самый низкий уровень и позволяет другим поваренные книги для переопределения с использованием «нормального» значения. Например, как это работает у меня есть включает две оболочки поваренных

Надеется, что это помогает. Приоритет атрибутов - важная, но тонкая концепция шеф-повара.