Chef Автоматизация в Облаках Владимир Соловьев, Михаил Щербаков Саратовский государственный университет, Grid Dynamics
2 Создать Сконфигурировать Обновить
3 Создать машину (bootstrap instance) API WEB UI Command- line tools Cloud провайдер
4 Сконфигурировать Вручную
5 Скриптами Shell НЕ масштабируемы НЕ идемпотентны ПРИВЯЗАНЫ к дистрибутиву Shell Python Ruby Shell Capistrano
6 Идемпотентность
7 Chef Конфигурирование? Программирование! Идемпотентные ресурсы Объединяем в рецепты
8 РецептыШаблоны Файлы Атрибуты Рецепты
9 chef-client: chef-server: Ohai База Поиск Web UI Cookbooks
10 chef-solo Ohai Cookbooks
11 Ресурсы Абстракция Определяет требуемое состояние 1+ провайдеров
12 Атрибуты Привязка к узлу Индексирование apache[:listen_ports] = [ 80 ]
13 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 service "nagios" do action :reload end Рецепты
14 Пример web-сервер мониторинг nagios-сервер Chef сервер
15 Новый сервер web-сервер Новый web-сервер мониторинг nagios-сервер Chef сервер ?
16 Как? Рецепт nagios Search Индексы! Новый web-сервер!
17 мониторинг nagios-сервер Chef сервер Обновить конфигурацию
18 Chef Opscode Puppet CFEngine
19 Спасибо за внимание ! Владимир Соловьев, Михаил Щербаков Саратовский государственный университет, Grid Dynamics