Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Повторяемость для
котиков: библиотекарь и
книжная полка
Иван Евтухович
Опрос про chef
librarian-chef
berkshelf
Проблематика
где хранить сторонние кукбуки
что делать, чтобы у всех инженеров был
одинаковый "срез" конфигурации
как обнов...
История вопроса
Как-то так
Все в одном репозитории
git submodule
Источники кукбуков
opscode community (http://community.opscode.com/
cookbooks)
Git/GitHub
локальные кукбуки
berkshelf

librarian-chef

зависимости

50

32

Vagrant

yes

yes

Инсталяций

220 тысяч

196 тысяч
Gemfile
source 'http://rubygems.org'
!

gem 'nokogiri'
gem 'chronic', "~> 0.10.2"
gem 'rails', '~> 3.2.13'
gem 'rake', '~>0...
Cheffile
site 'http://community.opscode.com/api/v1'
!

cookbook 'base', :path => 'inhouse-cookbooks/base'
cookbook 'fake', ...
Berksfile
site :opscode
!

cookbook 'base', :path => 'inhouse-cookbooks/base'
cookbook 'fake', :path => 'inhouse-cookbooks/...
Принцип работы
librarian-chef install
Cheffile => Cheffile.lock
berks [install]
Berksfile => Berksfile.lock
.lock файл описывает “срез” кукбуков
Cheffile - это “подсказка” о том, как его
генерировать
Обновление
librarian-chef update cookbook-name
berks update cookbook-name
обновят только cookbook-name и его зависимости
librarian-chef
Хранит все в папке cookbooks
локальные / git / community кукбуки
просто, понятен, железобетонен
librarian-p...
berkshelf
хранит кукбуки в shelf-е
berks upload (?)
локальные / git / community / chef-server кукбуки
поддерживается компа...
Проблемы
Имена и версии OS
Качество кукбуков
Несколько подходов к их написанию
Несколько подходов к версионированию
Наш подход
Отдельный chef-сервер на окружение
Все “сервисные” кукбуки в git/community
В inhouse-cookbooks кукбуки конкретн...
Workflow
вносим изменение
vagrant provision
knife cookbook upload name
Вопросы

twitter: express42_ru
ivan@express42.com
Повторяемость для котиков: библиотекарь и книжная полка
Upcoming SlideShare
Loading in …5
×

Повторяемость для котиков: библиотекарь и книжная полка

458 views

Published on

Поговорим о проблемах командного изменения конфигурации, а также управления версиями и зависимостями сторонних библиотек (в терминах Chef — кукбуков):

• где хранить сторонние кукбуки;

• как сделать, чтобы у всех инженеров был одинаковый «срез» конфигурации;

• как обновлять свои и сторонние кукбуки с учетом их зависимостей.

В докладе описаны два современных инструмента для решения этих проблем: librarian-chef и Berkshelf. Мы сравним их, разберем сильные и слабые стороны, особенности интеграции с системой создания окружений Vagrant. Также посмотрим на практики использования этих инструментов, выработанные в компании «Экспресс 42».

Видео есть здесь: http://tech.yandex.ru/events/yagosti/devops/talks/1597/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Повторяемость для котиков: библиотекарь и книжная полка

  1. 1. Повторяемость для котиков: библиотекарь и книжная полка Иван Евтухович
  2. 2. Опрос про chef
  3. 3. librarian-chef berkshelf
  4. 4. Проблематика где хранить сторонние кукбуки что делать, чтобы у всех инженеров был одинаковый "срез" конфигурации как обновлять свои и сторонние кукбуки с учетом их зависимостей
  5. 5. История вопроса Как-то так Все в одном репозитории git submodule
  6. 6. Источники кукбуков opscode community (http://community.opscode.com/ cookbooks) Git/GitHub локальные кукбуки
  7. 7. berkshelf librarian-chef зависимости 50 32 Vagrant yes yes Инсталяций 220 тысяч 196 тысяч
  8. 8. Gemfile source 'http://rubygems.org' ! gem 'nokogiri' gem 'chronic', "~> 0.10.2" gem 'rails', '~> 3.2.13' gem 'rake', '~>0.9.2' gem 'psych', '=1.2.2' gem 'pg'
  9. 9. Cheffile site 'http://community.opscode.com/api/v1' ! cookbook 'base', :path => 'inhouse-cookbooks/base' cookbook 'fake', :path => 'inhouse-cookbooks/fake' cookbook "timezone", :git => "git@github.com:express42-cookbooks/timezone.git" cookbook "sysctl", :git => "git@github.com:express42-cookbooks/sysctl.git"
  10. 10. Berksfile site :opscode ! cookbook 'base', :path => 'inhouse-cookbooks/base' cookbook 'fake', :path => 'inhouse-cookbooks/fake' cookbook "timezone", :git => "git@github.com:express42-cookbooks/timezone.git" cookbook "sysctl", :git => "git@github.com:express42-cookbooks/sysctl.git"
  11. 11. Принцип работы librarian-chef install Cheffile => Cheffile.lock berks [install] Berksfile => Berksfile.lock
  12. 12. .lock файл описывает “срез” кукбуков Cheffile - это “подсказка” о том, как его генерировать
  13. 13. Обновление librarian-chef update cookbook-name berks update cookbook-name обновят только cookbook-name и его зависимости
  14. 14. librarian-chef Хранит все в папке cookbooks локальные / git / community кукбуки просто, понятен, железобетонен librarian-puppet
  15. 15. berkshelf хранит кукбуки в shelf-е berks upload (?) локальные / git / community / chef-server кукбуки поддерживается компанией Chef (Opscode)
  16. 16. Проблемы Имена и версии OS Качество кукбуков Несколько подходов к их написанию Несколько подходов к версионированию
  17. 17. Наш подход Отдельный chef-сервер на окружение Все “сервисные” кукбуки в git/community В inhouse-cookbooks кукбуки конкретного проекта Сервисные кукбуки используются через lwrp Атрибуты задаются только в ролях / окружениях
  18. 18. Workflow вносим изменение vagrant provision knife cookbook upload name
  19. 19. Вопросы twitter: express42_ru ivan@express42.com

×