2016-10-20 2 views
0

У меня есть рецепт, который использует ресурс файла, чтобы предоставить группе активных групп доступ к локальной папке.Как проверить вещи на тестовой кухне, которые доступны только снаружи?

У меня нет доступа к AD с моего рабочего места шеф-повара, где я запускаю тестовую кухню.

Я хочу иметь возможность сходиться в кухне vm (а не только в тестах).

Так что я планировал использовать среду

  • сохранить имя группы в качестве атрибута, который будет являться атрибутом ENV
  • Продуктов окр была группа AD устанавливается в атрибуте
  • Тест окр имеет некоторые местные группы в атрибуте
  • Укажите тест окр в .kitchen.yml

Является ли это Ассигнования на использовать условия? Есть ли для этого другой механизм шеф-повара?

+1

Я бы установил локальную группу как атрибут по умолчанию в поваренной книге и установил группу AD в env, следовательно, у вас будут тесты на кухне с атрибутом cookbook и узлами реального мира с использованием групп AD. Я думаю, что этот вопрос слишком велик для SO. – Tensibai

+0

Вы можете ответить на вопрос, и я приму его – red888

+0

Done;) (Но для будущего читателя: это было бы лучше подходит для https://discourse.chef.io, так как есть много вариантов) – Tensibai

ответ

1

Для такого случая я бы использовал атрибуты cookbook для случая по умолчанию (тестирования).

В соответствии с атрибутами среды attribute precedence documentation атрибуты окружающей среды заменяют атрибуты поваренной книги (на том же уровне), поэтому в реальном мире вы установите группу AD в среде.

Это позволяет использовать для каждой группы окружения.

Внимание! Любое изменение окружения повлияет на все узлы, вам придется написать куклую обертки с верхним уровнем (обычно переопределить), если вы хотите изменить его только для подмножества узлов среды.

+0

Я бы настоятельно призывал вас использовать node.normal вместо того, чтобы устанавливать его в самой среде, поскольку наборы окружения довольно невидимы. Говоря об опыте реального мира, когда кто-то приходит, чтобы изменить свой код, они будут мистифицированы на пару дней, потому что ничего не делают, они меняют ценности. Мешки для хранения данных также являются достойным способом сделать это, поскольку они требуют кода в рецепте, который будет использоваться, таким образом, оставляют здоровенный след для сухарей для тех, кто приходит последовать за ним. Просто мои $ 0.02 – JackChance

+0

@Jack никогда не используйте node.normal или node.set, если вы не знаете, что делаете. Этот уровень постоянно написан на узловом объекте, и удаление строки из рецепта не будет возвращено к умолчанию, это является причиной большого количества проблем. Используйте node.default, если вы действительно хотите сделать это в рецепте, они оцениваются после атрибутов, поэтому они имеют приоритет, см. Ссылку в моем ответе. В этом конкретном случае, согласно описанию Op, окружающая среда в порядке, следовательно, предупреждающая часть. Но, пожалуйста, не защищайте node.normal для простых случаев использования, мы тратим слишком много времени на отладку их предыдущего использования. – Tensibai

Смежные вопросы