
Favoretti
24.09.2016
10:34:19

Phil
24.09.2016
10:35:06

Favoretti
24.09.2016
10:35:10
с паппета и мколлектив
mco мне никогда не нравился тем, что под ним надо держать queue отдельный, salt меня этим и купил частично.

Google

Favoretti
24.09.2016
10:38:35
> 2. Не иметь себе мозг, делать агента для конечных хостов
Если я конечно правильно понял, что ты имеешь в виду под словом “делать агента"

Phil
24.09.2016
10:40:17

Favoretti
24.09.2016
10:40:45
я бы все же пользовал или salt или ansible или хоть тот же fabric.

Phil
24.09.2016
10:40:48


Favoretti
24.09.2016
10:41:58
ну собственно потому что уже кто-то написал, есть community, не надо все делать/писать/чинить/ломать самому, и грабли у всех одни и те же в принципе. Одна голова хорошо…
круглее круглого колесо не выпилишь все равно. кроме как доказать себе, что ты тоже можешь сделать круглое колесо - особого смысля я не вижу. кроме случая, если есть реальное понимание почему не надо ползьвать все, что уже есть, а надо сделать свое, потому что ХХХ будет намного лучше.
но и там, я сначала бы подумал не впилить ли этот ХХХ уже в какой-то готовый продукт.
Я, конечно, мал и глуп, но придумать новый queue или pub/sub, который будет кардинально лучше того, что уже есть я пока не смог :)
makes sense?
в salt’e мне лично нравится отсутствие любой экстра инфраструктуры, кроме самого салта. ansible в принципе то же самое, но, как я уже сказал выше - SSH как транспорт меня настораживает. Хотя может я старомоден.

Magistr
24.09.2016
10:49:17

Favoretti
24.09.2016
10:49:23
в паппете, особенно в четвертом, мне очень сильно разонравилось куда они идут со всем продуктом. Clojure как язык, отсутствие homogenic orchestration, большой толчок в сторону “купите наш ентерпрайз и вам будет счастье”

Google

Vladimir
24.09.2016
10:50:19

Favoretti
24.09.2016
10:50:36
плюс, поговорив с людьми из салта, и таки купив у них опенсорс саппорт - они очень адекватны и очень хотят помочь своим кастомерам, в отличие от Люка и его новой политики
в салте есть точно :)
в паппете ессно тоже :)
Хотя мне кажется, что ansible, по природе своей не имеет никаких storages вообще.
(опять же, as good a guess as any at this point)

Vladimir
24.09.2016
10:54:11

Favoretti
24.09.2016
10:54:15
Кстати, если кто тут пользует ansible.. скажите пожалуйста. Мне всегда казалось, что он был сделан как orchestration engine, к которому потом прилепили CM.
Salt мне понравился тем, что они сразу поставили себе цель сделать… блин, кто-то просил не говорить “как это будет по-русски”, но… homogenic? гомогенное? есть такое слово? :) объединенную инфраструктуру для оркестрации и конфиг менеджмента.
Паппет прикупил поделку нашего коллеги в виде mcollective, но реально нормально интеграции между продуктами так и нет. Да, факты можно через зад читать. И все.
В салте просто охрененный концепт реакторов.
Триггеры orchestration на какие-то события в инфраструктуре. Причем не отходя от кассы, с общей базой данный о инфраструктуре, и т.д.

imya
24.09.2016
10:58:58

Favoretti
24.09.2016
10:59:53
Мне нравится, что они как раз не пытаются этого делать.

imya
24.09.2016
11:00:37

Favoretti
24.09.2016
11:02:55
Ты меня сейчас совсем потерял :)
Переспрошу по-украински.. ШО?
Точнее, по-харьковски ;)

Google

Александр
24.09.2016
11:03:48

Favoretti
24.09.2016
11:04:06
Бывает :)
о, homogenous - однородный! :D


Phil
24.09.2016
11:15:23
Так. Давай порпроще возьмём. Смотри. Мне нужен rsnapshot грубо говоря. На каждый хост. Но. Я хочу между синхронизацией текущих файлови и удалением самой дальней копией вломится с возможностью восстановления. И после снапщота, хочу, чтобы актуальное состояние метаинфы улетело обратно в управлялку. Там делов на день с отладкой и кофе. Мучаюсь неделбю с архитектурой и реализацией. Ок. Есть Task Queue. Вот есть где-то расположенный в вакууме Task Worker (бьез разницы - Celery там, или вообще сам по REST что-то поллю, или хоть SELECT в MySQL делаю). Назовем его Обработчик-1. Поймал он задачу "делай снапшот". У меня есть варианты:
1. На хосте стоит ещё один мой Обработчик-2 с API, или лежать мои скрипты. Обработчик-1 задач выуживает из моей управлялки метаинфу по бэкапу, куда обращать, куда делать, что делать и фигачит на хост вот в это API обработчика-2 или по SSH скриптам (транспорт не важен, я для примера). Те что-то там делают (rsync например) и возвращают обрабтчику "мы сделали rsync, последний снапшт называется так-то, сделан тогда-то). Обработичик-1 задач записывает это куда-то к мне и ставит таске статус "готово".
2. Обработчик-1 выуживает из моей управлялки метаинфу по бэкапу, куда обращать, куда делать, что делать, создаёт инвентори и фигачит ansible-playbook с этим инвентори и соответствующей ролью. На хосте в итоге стоит только python или ansible agent (или как он там именуется) и настроены доступы. Обработчика-2 не существует.
Однако. Код моего обработчика-2 влетает в плагины или роли ansible у обработчика-1.


Favoretti
24.09.2016
11:16:56
я щас буду звучать так, как будто у меня акции saltstack :) но....
https://docs.saltstack.com/en/latest/topics/reactor/
документация у них говно. но. reactor у них для этого именно и сделан.
есть таски, по результату тасков можно засунуть event в message bus. на сей event можно повесить еще задачи.

Phil
24.09.2016
11:18:39
Да это хер с ним. Проблема не в обработке и ловле. Проблема в сделать самому или взять ansible, где всё равно сделать самому. Или salt, где всё равно сделать самому

Favoretti
24.09.2016
11:19:05
бизнес логику прийдется все равно делать самому, чтоб ты не взял.

Phil
24.09.2016
11:19:06
Так скажем, вопрос уже за пределами t/e queue

Favoretti
24.09.2016
11:19:41
вопрос в том, будешь ли ты еще сам делать то, что будет обрабатывать эту логику

Favoretti
24.09.2016
11:19:47
или возьмешь что-то готовое.

Phil
24.09.2016
11:20:00
У меня ступор в том, что я не понимаю - я вообще получу что-то от ansible/salt кроме двух трёх готовых библиотек типа хандлеров там и шаблонов, или легче просто сразу самому сделать

Favoretti
24.09.2016
11:20:03
или не в этом вопрос?
самому не легче никогда, как мне кажется. Потому что сам - сам. Сам сделал, сам налажал, сам саппортишь.

Phil
24.09.2016
11:20:54
а один хрен арзитекутуру я саппорчу

Favoretti
24.09.2016
11:20:56
И я сейчас опятъ же о транспорте, а не о имплементации бизнес логики.

Phil
24.09.2016
11:21:07
ну вот транспорт - хрен с ним

Favoretti
24.09.2016
11:21:23
да вот как раз не хрен с ним :)

Google

Phil
24.09.2016
11:21:44
да хрен с ним. потока задач такого нет, чтобы просто табличка в MySQL не справилась и поллинг

Favoretti
24.09.2016
11:21:54
потому что если есть уже устоявшийся транспорт - нахрена тебе топтаться по граблям, по которым уже прошли племена краснолицых?

Phil
24.09.2016
11:21:55
и не будет даже на 10000 хостов
проблема - бизнес лдогику вкорячивать в ansible, или не трогать его вообще

Favoretti
24.09.2016
11:22:51
а если его не трогать, куда вкорячивать бизнес логику?

Phil
24.09.2016
11:22:56
ну илди в salt - в контексте не принципиально

Favoretti
24.09.2016
11:23:39
его = salt, ansible, puppet, mcollective, fabric, …. шото готовое

Phil
24.09.2016
11:24:39
а что оно для меня готовое? общение с последним хостом? возможность handle в отличии от make? красивый copy?
а это мне даст больше, чем изучение как плагин писать?

Admin
ERROR: S client not available

Phil
24.09.2016
11:25:50
у меня нет ответа

Favoretti
24.09.2016
11:26:15
готовое то, что тебе не надо думать как оно доедет до хоста, как делать обработки ошибок если оно не доехало и т.д. или я чего-то не понимаю в твоей задаче, или разница как раз в том - пишешь ли ты только бизнес логику, или еще и то, как эта бизнес логика будет доставляться, выполняться, и т.д.

Phil
24.09.2016
11:26:22
сейчас это bourne shell скрипт о 15 строчках. я уже неделю какой-то звездолет изобретаю

Favoretti
24.09.2016
11:27:15
Если скрипт надо заменить только потому, что “это ж ща круто и девопс” - я бы не трогал :)

Phil
24.09.2016
11:30:10

Favoretti
24.09.2016
11:30:51
Если хочется написать что-то самому и сохранить контроль над всем. Fabric видел?
Я на нем в свое время написал взю нашу систему деплойментов. Работает как кирпич. Пока не придумали nomad :)

Phil
24.09.2016
11:31:37
Задача стаяла воткнуть в него что-то кроме "сделай цикл снапшота". Ну я решил заодно универсализировать Task Queue и само исполнение. У меня там всё так, рано или поздо надо будет и апачи так же делать и бэкапы mysql, и вот это всё

Google

Phil
24.09.2016
11:32:45

Favoretti
24.09.2016
11:33:06
Честно, я наверное не понимаю твоего душевного порыва, но я бы в любой такой задаче спросил себя сначала “кто уже такие проблемы решил и как” и выбрал бы путь наименьшего сопротивления. Написать самому для меня таковым не всегда (почти никогда) не явлается.

Phil
24.09.2016
11:34:04

Favoretti
24.09.2016
11:35:29
Вот собсно fabric – набор отверток с мотором. Крути шо хочешь, но куда болты и куда шурупы - сам решай. И как и с какой скоростью тоже. Недо-ansible в своем роде.

Phil
24.09.2016
11:36:07
Ой какая штука

Favoretti
24.09.2016
11:36:28
если я все понял правильно - тебе должно подойти

Phil
24.09.2016
11:36:28
няняня
Да мне и ansible подошёл бы. Вопрос насколько затратно для поддержки и разработки

Favoretti
24.09.2016
11:37:01
Ее автора знаю лично - мега дядька :)
Ну вот я 5 лет назад на фабрик напоролся - мне хватило на много лет.
Ибо просто, minimal abstraction, удобно, и без каких-то мега изъебов с инфраструктурой вокруг.

Phil
24.09.2016
11:38:28

Favoretti
24.09.2016
11:39:32
И как по мне - написать самому всегда плохой путь. Смотри на Алексея с вопросом как документировать написаное :) Если не сам написал, то там уже и документировано заодно :)

Phil
24.09.2016
11:42:18

Favoretti
24.09.2016
11:42:50
Хотя, по поводу fabric - word of warning. bitprophet (его автор) он похоже утратил все возможности его девелопить. Он время отвремени просыпается, педалит как не в себя, и уходит в спячку на год.
С другой стороны, он забрал себе maintenance paramiko (python SSH), автор которого по-моему совсем ушел из мира сего. по крайней мере в техническом смысле.
С третьей стороны, фабрик прост как двери и дальше там вобщем-то девелопить мало чего интересно.
Но меня он реально купил в свое время.

Phil
24.09.2016
11:47:52
Ну и да. Пункт три - я хочу свою управлялку продавать. Типа ISPManager. Чтобы код не ставить
Например своим же клиентам