Chef: автоматизация в Облаках

реклама
Chef
Автоматизация в Облаках
Владимир Соловьев, Михаил Щербаков
Саратовский государственный университет,
Grid Dynamics
Создать
Сконфигурировать
Обновить
2
Создать машину
(bootstrap instance)
Cloud
провайдер
WEB UI
Commandline
tools
API
3
Сконфигурировать
Вручную
4
Скриптами
Shell
Python
Ruby
Capistrano
НЕ масштабируемы
НЕ идемпотентны
ПРИВЯЗАНЫ к дистрибутиву
5
Идемпотентность
6
Chef
Идемпотентные ресурсы
Объединяем в рецепты
Конфигурирование? Программирование!
7
Рецепты
Шаблоны
Рецепты
Атрибуты
Файлы
8
chef-server:
chef-client:
База
Поиск
Web UI
Cookbooks
Ohai
9
chef-solo
Ohai
Cookbooks
10
Ресурсы
Абстракция
Определяет требуемое состояние
1+ провайдеров
11
Атрибуты
apache[:listen_ports] = [ 80 ]
Привязка к узлу
Индексирование
12
Рецепты
web = search(:node, "role:web").map { |cfg|
[cfg["ipaddress"], cfg["fqdn"] ]
}
web.each do |w|
template "/etc/nagios/webs/#{w[1]}" do
variables :web => w
source webs_nagios.erb
end
end
service "nagios" do
action :reload
end
13
Пример
web-сервер
мониторинг
nagios-сервер
Chef
сервер
14
Новый сервер
web-сервер
мониторинг
nagios-сервер
?
Новый
web-сервер
Chef
сервер
15
Как? Рецепт nagios
Search Индексы!
10.1.1.4
10.1.1.10
Новый web-сервер!
16
Обновить конфигурацию
мониторинг
nagios-сервер
Chef
сервер
10.1.1.4
10.1.1.10
17
CFEngine
Puppet
Chef Opscode
18
Спасибо за внимание!
Владимир Соловьев, Михаил Щербаков
Саратовский государственный университет,
Grid Dynamics
19
Скачать