SlideShare a Scribd company logo
1 of 20
Download to read offline
Повторяемость для
котиков: библиотекарь и
книжная полка
Иван Евтухович
Опрос про 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.9.2'
gem 'psych', '=1.2.2'
gem 'pg'
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"
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"
Принцип работы
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-puppet
berkshelf
хранит кукбуки в shelf-е
berks upload (?)
локальные / git / community / chef-server кукбуки
поддерживается компанией Chef (Opscode)
Проблемы
Имена и версии OS
Качество кукбуков
Несколько подходов к их написанию
Несколько подходов к версионированию
Наш подход
Отдельный chef-сервер на окружение
Все “сервисные” кукбуки в git/community
В inhouse-cookbooks кукбуки конкретного проекта
Сервисные кукбуки используются через lwrp
Атрибуты задаются только в ролях / окружениях
Workflow
вносим изменение
vagrant provision
knife cookbook upload name
Вопросы

twitter: express42_ru
ivan@express42.com

More Related Content

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

Chef коротко об инфраструктуре
Chef коротко об инфраструктуреChef коротко об инфраструктуре
Chef коротко об инфраструктуре
Andrey Subbota
 
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Ontico
 
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Ontico
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
Anton Turetsky
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
Badoo Development
 
Vagrant: плагины и гастрономический фестиваль
Vagrant: плагины и гастрономический фестивальVagrant: плагины и гастрономический фестиваль
Vagrant: плагины и гастрономический фестиваль
Nikita Borzykh
 
Антон Каляев — Быстрое развертывание среды с Vagrant
Антон Каляев — Быстрое развертывание среды с VagrantАнтон Каляев — Быстрое развертывание среды с Vagrant
Антон Каляев — Быстрое развертывание среды с Vagrant
Daria Oreshkina
 
Gevent для эмуляции нагрузки
Gevent для эмуляции нагрузкиGevent для эмуляции нагрузки
Gevent для эмуляции нагрузки
m0use
 

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

Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на Go
 
Chef коротко об инфраструктуре
Chef коротко об инфраструктуреChef коротко об инфраструктуре
Chef коротко об инфраструктуре
 
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
 
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
 
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Vagrant: плагины и гастрономический фестиваль
Vagrant: плагины и гастрономический фестивальVagrant: плагины и гастрономический фестиваль
Vagrant: плагины и гастрономический фестиваль
 
Антон Каляев — Быстрое развертывание среды с Vagrant
Антон Каляев — Быстрое развертывание среды с VagrantАнтон Каляев — Быстрое развертывание среды с Vagrant
Антон Каляев — Быстрое развертывание среды с Vagrant
 
SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101
 
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
 
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени.
 
Gevent для эмуляции нагрузки
Gevent для эмуляции нагрузкиGevent для эмуляции нагрузки
Gevent для эмуляции нагрузки
 
Использование gevent для эмуляции высокой нагрузки
Использование gevent для эмуляции высокой нагрузкиИспользование gevent для эмуляции высокой нагрузки
Использование gevent для эмуляции высокой нагрузки
 

More from Ivan Evtukhovich

Нетрадиционное использование Ruby и PostgreSQL
Нетрадиционное использование Ruby и PostgreSQLНетрадиционное использование Ruby и PostgreSQL
Нетрадиционное использование Ruby и PostgreSQL
Ivan Evtukhovich
 
Git для продолжающих
Git для продолжающихGit для продолжающих
Git для продолжающих
Ivan Evtukhovich
 

More from Ivan Evtukhovich (12)

Развитие DevOps/NoOps инструментов. Что было, что есть, что будет.
Развитие DevOps/NoOps инструментов.  Что было, что есть, что будет.Развитие DevOps/NoOps инструментов.  Что было, что есть, что будет.
Развитие DevOps/NoOps инструментов. Что было, что есть, что будет.
 
Микросервисы: откуда столько шума?
Микросервисы: откуда столько шума?Микросервисы: откуда столько шума?
Микросервисы: откуда столько шума?
 
Микросервисы: откуда столько шума?
Микросервисы: откуда столько шума?Микросервисы: откуда столько шума?
Микросервисы: откуда столько шума?
 
Жизнь консалтинга в мире DevOps
Жизнь консалтинга в мире DevOpsЖизнь консалтинга в мире DevOps
Жизнь консалтинга в мире DevOps
 
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
 
Куда движется управление инфраструктурой
Куда движется управление инфраструктуройКуда движется управление инфраструктурой
Куда движется управление инфраструктурой
 
Continuousdelivery
ContinuousdeliveryContinuousdelivery
Continuousdelivery
 
Нетрадиционное использование Ruby и PostgreSQL
Нетрадиционное использование Ruby и PostgreSQLНетрадиционное использование Ruby и PostgreSQL
Нетрадиционное использование Ruby и PostgreSQL
 
Vim or die
Vim or dieVim or die
Vim or die
 
Git для продолжающих
Git для продолжающихGit для продолжающих
Git для продолжающих
 
Краткое описание Scrum
Краткое описание ScrumКраткое описание Scrum
Краткое описание Scrum
 
Распределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере gitРаспределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере git
 

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