3. Кто вы?
➢ Управляете окружениями с числом
серверов (в одном окружении):
➢ Более 1024
➢ 256-1024
➢ 64-256
➢ 16-64
➢ 0-4
4. Почему SaltStack?
➢ Поднимите руки те, кто работает с Chef
➢ Если много рук:
➢ Многозначительно произнести: “Вот
потому и SaltStack!”
➢ Если мало рук:
➢ Проверить, на ту ли вообще встречу я
пришел, и кто все эти люди в зале
➢ Кроме количества людей на поляне
есть и другие метрики, сравним и их
5. Все-таки, почему SaltStack?
➢ Новые знания после 14 мес. с Chef:
➢ Chef-сервер порой неоптимален*
➢ Chef-клиент порой неоптимален*
➢ Ruby-машина похожа на Java-машину:
➢ Прекрасно, когда “one box – one
service” и плохо, когда сервис нужен для
инфраструктурных целей
* работает как г...о
6. Все-таки, почему SaltStack?
➢ Если Ruby-машина это такая JVM, то
➢ Это Java-машина, в которой не сделать
jmap -dump:... pid_of_ruby_process?
➢ Да, да, я имею в виду heap dump
➢ Да, мне давали ссылку на секретный
тул
➢ Он упал по SIGSEGV
➢ Зачем же мне дамп памяти?
9. Займемся установкой
➢ Как установить сервер?
➢ wget -O - http://bootstrap.saltstack.org | sudo sh -s -- -M
➢ Как установить клиент?
➢ wget -O - http://bootstrap.saltstack.org | sudo sh
➢ (Но для Debian нужны доп. шаги)
➢ Сравните с установкой Chef-сервера!
➢ Сравните сложность архитектуры
(запускается один скрипт, а не стек из
трех разных enterprise-grade продуктов)
10. Сконфигурируем сервер
➢ А что там нужно сконфигурировать?
➢ А нет ничего!
➢ Но порты 4505/tcp и 4506/tcp надо
открыть для доступа извне
➢ Или настроить портфорвардинг, если
master недоступен извне
12. Клиент доступен для команд
➢ SaltStack начинался как remote
execution tool, и в этом он лучше* Chef
➢ Почему лучше? Допустим, master не
имеет никакого контакта с minion
➢ Удаленное выполнение все равно
работает!
➢ (Сейчас мы это и проверим)
* на мой взгляд
13. Опишем конфигурацию клиента
➢ /srv/salt – здесь лежит дерево
конфигурации
➢ Все начинается с файла top.sls
base: <---- это environment
'*': <---- это селектор миньонов
- apache2
- mysql
- php
- nginx <----
- supervisor <---- это states
- dir_copy <----
- varnish
- memcached
14. Опишем state
➢ /srv/salt/apache2 – здесь лежит все
описание стейта
➢ /srv/salt/apache2/init.sls – описание
вызовов модулей
➢ В каталоге также конфигурационные
файлы (шаблоны на yaml-jinja)
15. Если он такой умный, то...
➢ ...почему он строем не ходит?
➢ Недостатки:
➢ У Chef отлично построено управление
кукбуками – то, чего в Salt нет вообще
➢ У Salt существенно меньше user base
(это же было достоинством на первых
слайдах?)
➢ Python сейчас не очень моден
➢ Баги (WTF с именем клиента
видели только те, кто был лично)
16. Быстродействие
➢ Поднимите еще раз руки, у кого 1024
коробки и более?
➢ (Произнести какой-нибудь sarcasm.jpg
на тему hioghload web и 1024 запросов
к серверу, скажем, за 10 минут)
➢ А если серьезно, то есть возможность
масштабировать горизонтально
➢ Кстати, основное время занимает не
сам клиент, а прогон стейта
17. Выводы
➢ Надо попробовать CFEngine
➢ Я не шучу:
➢ Всё еще бывают окружения с
жесткими требованиями к расходу
ресурсов
➢ SaltStack надежно займет место у меня
в кармане
➢ Чего и вам желаю (нет, на самом деле)