Как стать автором
Обновить

Комментарии 5

Подскажите, а вы посылаете pull request-ы в community кукбук если что-то исправляется?
Если да, то как потом мержите вашу модифицированную версию с той что в community? Ведь рано или поздно приходит необходимость обновлять кукбук и совсем не хочется сидеть на своем старом модифицированном.
Не посылаем. Мердж — рисковое дело. Есть пару аспектов:
— комьюнити кукбук меняется, но без критических правок, тогда можно было бы рискнуть;
— скелет кукбука меняется — надо руками мерджить это дело либо оставать на старом варианте.
Из практики — мы замораживаем все версии кукбуков, по возможности. Смысл в обновлении кукбука есть только если:
— что-то не работает и это нельзя пофиксить (редкое дело, мне кажется);
— вышло обновление, приносящие необходимые нам фичи (ну тож сомнительно).

Мерджить можно, использовать потом TestKitchen, прогонять тесты (спеки и пр.) — и принимать решение годный ли мердж.
В нашем варианте — обновление можно и руками сделать, не частый это процесс.
Но вариант с тестированием — тоже хорош, кошерен.

Как-то так, надеюсь смог ответить развернуто. Пишите, ежели что.
Возможно вам поможет паттерн wrapped-cookbook: я его использую гораздо шире, чем даже описано в комьюнити.

Я считаю библиотечными все комьюнити кукбуки, т.к. они не знают конкретно моей инфраструктуры и для меня, по сути, представляют собой набор библиотечных методов.
Во врапере я меняю поведение кукбука так, как мне надо: переписываю аттрибуты, вызываю или не вызываю рецепты, дописываю своё.
После исправлений в комьюнити кукбуке я делаю:

berks update community-cookbook 

и смотрю, что получилось
Да тезка, врапперы это наше все, учитывая, что есть возможность пользовать chef-rewind + аттрибуты. И да, редко что-то кардинально случается в community-cookbook, так что рисков мало.

Хорошо, когда есть команда DevOps и время, чтобы выверить update, пусть даже поверхностно. А езе лучше — есть отлаженный механизм тестирования кукбуков — всякие kitchen, rspec и пр.

А вообще, если верить Chef, то их скоро доступный Chef Delivery может оказаться хорошим соратником в создании полноценного flow из нативных Chef-у инструментов. И не нужно особо ничего выдумывать.
Инфа из 2018го года. Подключаем зависимости локальных кукбуков:
cookbook "library-cookbook", "~> 0.1.1", path: "../library-cookbook"

docs.chef.io/berkshelf.html#cookbook-keyword
Зарегистрируйтесь на Хабре , чтобы оставить комментарий