Anonymous
Но не говорит нам
Dmitry
Можно провижен старой делать?
Встречный вопрос. Дяденька, а можно не виртуалки? :)
🏳️ Phil
ты хостер, у тебя особый зоопарк
ну да. собственно я сейчас переделываю свои бжкапы и понимаю, что пишу частично ansible. но если его использвпть напрямую, то я на каждый таск генерю инвентори и варсы. или это норм и я зря парюсь
Anonymous
Я думаю что еще что-то можно, но дальше мне не интересно
Dmitry
Но ты не хочешь агента (почему-то, но тут хозяин барин как бы), поэтому пусть будет ансибл :)
🏳️ Phil
У меня сейчас агент самописный
Dmitry
ну поднять 1000 хостов новых это провиженинг, налить в них сайты и сконфигурить апач и мускуль это уже ансибл и конфиг менеджмент
все верно. так и было всегда "поднять" хоть "сто хостов", хоть "один". но именно поднять. а не залить туда "греп с селектом"
Dmitry
просто когда пропали железные сервера (на них provision был ярко выражен) и все стало жить в виртуалках (у которых провижна практически нет, она сразу создается с нужной осью из image и сразу с настроенным адресом) devops школота почему-то стала называть провижном "раскатку mysql'ей"
Dmitry
у виртуалки всего провижна - rest запрос к облаку (digital ocean или aws или "хуйлысый" по большому счету не суть) или не к облаку, а к локальному libvirt (или "хуюлысому")
Dmitry
раньше это различалось, но потом программисты стали "девопсами", отрастили бороды, стали пить крафтовое пиво и стало им "дальше не интересно" :)))
🏳️ Phil
Но ты не хочешь агента (почему-то, но тут хозяин барин как бы), поэтому пусть будет ансибл :)
была идея сделать управлялку без агента, чтобы раздавать панельку.но похоже так себе идея
Dmitry
была идея сделать управлялку без агента, чтобы раздавать панельку.но похоже так себе идея
я бы сказал на тысячу (десятки тысяч особенно) без агента так себе идея
Dmitry
собсно такие масштабы - это как раз то, на чем как-то сразу становится понятно, чем salt отличается от ansible, зачем он вообще нужен, если есть ansible, и почему аргумент "фу, зато у меня без агента и ничего ставить не надо" как то тускнеет :)
🏳️ Phil
хмхм... ну вот сейчас у мегя самописные агенты...
Dmitry
ну смысл того же агента в чем? главным образом. вот на примере ansible и salt допустим, у тебя 10000 серверов. ты решил что-нибудь там на них подлить. неважно вообще что. ну что-нибудь, конфиг подправить, пакет доставить. какой-то таск должен быть исполнен. для простоты примера - на каждом сервере.
Dmitry
запускаем ансибл плейбук. прошел, отработал, отлично. командуем salt, прошел отработал, отлично. разницы нет
Dmitry
теперь представим, жизнь сложная штука, сцка, боль. 10 серверов из 10000 щас выключены, недоступны, понос пробрал
Dmitry
запускаем ансибл плейбук. хм. на 9990 серверов применилось. на остальные - сорян, тащ майор, собака след не берет
Dmitry
и чо? а ничо... когда включатся - не забудь запустить
Dmitry
salt - на 9990 серверов применилось. на остальные? даихснм, включатся, подсосут и выполнится
Aleksey
ansble-pull разве не оно ?
🏳️ Phil
Ну у меня в любом случае таски отрабатываются отдельно - мне нужен фидбэк по ним и массово почти никогда не бывает. Раз может в три года, когда сервер упал и стерся и я восстанавливаю из бэкапов
Dmitry
ansble-pull разве не оно ?
salt-ssh ага, тоже "оно", аргумент в обратку для "зато бизагента"
Dmitry
и там оно и тут оно. только, Петька, есть нюанс (с)
🏳️ Phil
Собственно я сейчас разрываюсь: 1. Делать обработку тасков с помощью ansible и не ставить ничего на конечных хостах. 2. Не иметь себе мозг, делать агента для конечных хостов и убрать целый уровень абстракции. Но потерять универсальность и всё делать самому кодом без типа универсального конфигуратора. И да, на хостах будет доступ к очередям, некооторым метаданным управлялки и так далее
Dmitry
Собственно я сейчас разрываюсь: 1. Делать обработку тасков с помощью ansible и не ставить ничего на конечных хостах. 2. Не иметь себе мозг, делать агента для конечных хостов и убрать целый уровень абстракции. Но потерять универсальность и всё делать самому кодом без типа универсального конфигуратора. И да, на хостах будет доступ к очередям, некооторым метаданным управлялки и так далее
не знаю, как там у тебя, конечно. но чисто мое субъективное мнение - я бы наверное велосипед городить не стал, пусть таски по серверам фигачит ансибл. насколько я понял, тебя главным образом беспокоит то, что ты там на каждый чих инвентори генеришь и все такое. в этом нет ничего страшного. dynamic inventory вообще штатная штука например
Dmitry
да хоть весь playbook генери по шаблону с изменениями, ничего страшного
🏳️ Phil
0. Велосипед сейчас _уже_ есть. Лет 14 :) 0.1. Раскрываю тему - управление шаредом
Magistr
0. Велосипед сейчас _уже_ есть. Лет 14 :) 0.1. Раскрываю тему - управление шаредом
Фил видел https://events.yandex.ru/lib/talks/2341/ ? мб тебе и салт нормально будет, но начинать реально проще с ансибла
Dmitry
да, реально проще начать с ансибла, когда станет неудобным (и если! ибо не факт), салт сам собой нарисуется :)
Ivan
а зачем салт?
🏳️ Phil
ммм... ну собственно у меня вопрос можно раскрыть как "использовать ansible/salt или тупо самому написать"? Там для всего всё равно придётся писать кастомные плагины. нету у ansible стандартного "сделай бэкап по такой схеме вон того и обзови его так". или "вот должен быть апач с такой=то версией php и с такой-то, а с другими не должно быть, а конфиги вот".
Ivan
Какие у него киллер-фичи?
Ivan
а самому написать - это на перле?
Ivan
или на баше?
🏳️ Phil
а самому написать - это на перле?
без разницы. если плагины к ansible, то на python
🏳️ Phil
меня пока в этой идее привлекает то, что у ansible есть там типа статусы, всякие template, copy и так далее
Dmitry
я не понимаю тогда, что такое "мультисервисная роль" :)
🏳️ Phil
у ansible нет роли с поддержкой двух апачей
Dmitry
шта?
🏳️ Phil
ссылка?
Dmitry
вангую какие-то проблемы с терминологией
🏳️ Phil
Есть хост с мултиинстанс апач. Ansible стандартно так не умеет
Dmitry
точно, проблемы с терминологией
Dmitry
смешались в кучу кони, люди, плейбуки, роли, таски и "кастомные плагины"
🏳️ Phil
Мультиинстанс апач - это стандартный термин. Он быстро гуглится и используется например убунтой.
Dmitry
ты "нестандартно", без всякого ансибла, два апача разных версий, как ставишь?
🏳️ Phil
Апач одной версии. Из просто несколько запущено
Dmitry
я не понимаю, причем тут термины убунты, когда я говорю про проблемы с терминологией ансибла
Dmitry
ага. одной версии. запущено несколько.
Dmitry
в чем проблема?
🏳️ Phil
я не понимаю, причем тут термины убунты, когда я говорю про проблемы с терминологией ансибла
А. Ну тут смешались кони люди, да. Я конечно имел ввиду, что у ансибла нет роли с мултиинстанс апачем. И кстати даже третьих производителей удовлетворительной нет
Dmitry
добрый дядя не написал роль и не положил в galaxy чтоли?
🏳️ Phil
Например. Там сложно без плагина. Я пробовал - изврат получается. Надо плагин мутить
🏳️ Phil
Я бы даже сказал, не то что сложно, а незачем
Dmitry
я конечно апач в диком виде не видел лет 15 уже, далек от проблем шареда. но там ведь дело сведется к тому, что просто несколько init script'ов и несколько конфигов?
Dmitry
в идеале бы конечно вообще сделать нормально. как у uwsgi например в убунте
🏳️ Phil
Ну... +- . Ничего сложного. проблема только в обходе всего этого и оценке ситуации
Dmitry
но для этого в принципе конфиг не нужен. это обычная роль, довольно простая
🏳️ Phil
А как у uwsgi в убунте?
Dmitry
ну да, не готовая из galaxy
Aleksey
ну да, не готовая из galaxy
а ты юзаешь что то из галакси ?
Aleksey
у меня ни разу не получилось :(
Aleksey
только как примеры
Dmitry
ну там app-available и app-enabled, типа как виртхосты апачей обычно. и обертка вокруг небольшая. конфиг инстанса coolinstance.ini кладешь в папку, потом service uwsgi start|stop|restart|status coolinstance начинают работать логи сами собой создаются в /var/log/uwsgi/app/coolinstance.log и прочий там синтаксический сахар
Dmitry
а ты юзаешь что то из галакси ?
практически ничего. максимум побаловаться, глянуть, как примеры, да
Dmitry
о, глянул, в убунте дебиане апач и сам так умеет, почти как uwsgi
🏳️ Phil
да
🏳️ Phil
во фре тоже
Dmitry
кривовато правда, /etc/apache2-xxx это немного не то пальто, что /etc/uwsgi/apps-enabled/xxx, но и так сойдет
Dmitry
ну тогда роль вообще простая
Леннарт Zh 🕊
salt - на 9990 серверов применилось. на остальные? даихснм, включатся, подсосут и выполнится
На печальном опыте унаследованной архитектуры: даже в папете можно так нахуевертить, что придётся узлы "сбрасывать" до какого-то "нулевого" состояния, иначе они сами не встрепенутся и не прийдёт в чувство. Если ручки кривые выбор инструмента не принципиален - конфиг на нодах всё равно хаотизируется
Dmitry
/me стошнило под стол от слова папет, excuse me :D