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

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

Привет, Акжан!

В Librarian, как и в Berkshelf, выдран кусок Bundler, который зависимости вычисляет. Так что это не просто «копирование практик». А так да, идеологически то же самое, что и сабмодули, но удобнее.
НЛО прилетело и опубликовало эту надпись здесь
По-мне, так шило на мыло. В чем-то получше berkshelf, в чем-то — либрариан. Мы в компании раз 5 метались туда-обратно, остановились на либрариане пока.
Интересный тул. Можно попробовать, хотя пока мы не сталкивались с необходимостью апдейтить гитхабовские кукбуки, которые закинули себе. Но могу представить себе кейс, когда это было бы полезно.

А вот не подскажите ли инструмент для управления значениями аттрибутов, более удобного, чем то, как это сейчас организовано из коробки в шефе. А то мы свой наколенный велосипед написали, чтобы все конфиги хранились в одном ямле.
Мы храним все аттрибуты в ролях, роли в roles/rolename.rb, а потом заливаем их knife role from file roles/rolename.rb.

Из всего, что я знаю — это самый лучший способ.
роли, да — это стандартный инструмент и он немного не о том. Есть, скажем, N различных окружений, которые поднимаются шефом(develop, CI, QA, production,etc.), для каждого окружения мы создавали конфиг файл, в котором перечисляли роли и рецепты, которые должны отработать на конкретном инстанце, а также переопределяли аттрибуты. Затем нужно было только сказать шефу выполнить тот или иной конфиг. Но это не удобно — потому что с увеличением количества различных конфигураций виртуалок, увеличивалось количество конфигов с переопреденными аттрибутами. Мы придумали свою систему с наследованием и т.п. усовершенствованиями — все аттрибуты храним в yaml файле и вычитываем нужную конфигурацию по запросу. Вот хотелось узнать у людей, которые используют шеф — может уже появился стандартный инструмент управления конфигурациями?
Стандартный инструмент управления конфигурациями к инструменту управления конфигурациями системы управления конфигурациями (читай пакетами)? ;))

Есть придирки к мелочам, но в целом шутка удалась :-)
В каждой шутке, есть доля шутки. Но реалии таковы, что уже не до шуток. :)
я использовал databag'и, по сути тоже самое делал, в json хранил атрибуты и грузил их по ролям…
Нет, ничего такого я не встречал.

Мы храним настройки окружений в git в environmets/env.rb. Единственное, что мы не храним и не версионируем — это связки нода-роль. Все остальное лежит в системе контроля версий. Обязательно поделюсь где-нибудь, когда придумаю, как можно сделать это удобно.
Я правильно понимаю? Если стоит задача развернуть несколько mysql серверов с разными конфигурациями, то под каждый сервер вы определяете новую роль и форкаете репу и модифицируете параметры?
Если нам надо несколько серверов mysql с разными параметрами, то мы делаем несколько вызовов lwrp для mysql.

А в каких рецептах будут эти вызовы lwrp и как эти рецепты будут привязаны к ролям — зависит от конкретной задачи.

Если немного подробнее, то мы подцепляем все рецепты через librarian, а в локальных рецептах храним только описание текущего проекта, в котором декларативно вызываются только стандартные ресурсы шефа и lwrp из подключенных рецептов.
По следам только прошедшей конференции от опскод — беркшелф набирает популярность, про библиотекаря никто не упоминал, так что я бы советовал использовать его, если хотите задел на будущее. Да и гитхаб аккаунт их выглядит посерьезнее: github.com/riotgames

А технологически и то, и то — бандлер, конечно.
Да, вокруг беркшелфа больше хайпа, об этом нет смысла спорить даже. Мы пробовали оба инструмента использовать, но по второстепенным причинам нам librarian понравился гораздо больше. Кстати, он недавно обновился до версии 0.1.0 и на гитхабе появился к нему нормальный хелп github.com/applicationsonline/librarian-chef
Я не совсем специалист в puppet, но есть рассылка groups.google.com/forum/?fromgroups#!forum/devopsru там специалистов много, можно там спросить.
благодарю!
Добрый день! Спасибо за статью, сам использую berkshelf для шефа, но альтернатив для паппета кроме librarian вроде нет.

У меня есть вопрос, но не совсем по теме: с локом версий кукбуков понятно, а вот можно ли так же в стиле бандлера фиксировать версии пакетов (устанавливаемых package ресурсом)?

Пример: ubuntu 12.04.2 ставит mysql-server 5.5, но нужно чтобы явно ставился 5.1. Я пока знаю только способ указывать явно версию атрибутом version для package. Т.е., например, если есть список пакетов, я храню их в хеше имя — версия и потом прохожусь по нему с each.

Спасибо.
Когда нужно иметь две версии(mysql/pgsql, nginx итд) мы прибавляем к имени пакета его версию. Например, пакеты с postgresql 9.1 и 9.2 соответственно называются postgresql-9.1 и postgresql-9.2. Способ подходит, если таких пакетов мало.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий