Anonymous
Но не говорит нам
🏳️ Phil
🏳️ Phil
ты хостер, у тебя особый зоопарк
ну да. собственно я сейчас переделываю свои бжкапы и понимаю, что пишу частично ansible. но если его использвпть напрямую, то я на каждый таск генерю инвентори и варсы. или это норм и я зря парюсь
Magistr
Anonymous
Anonymous
Я думаю что еще что-то можно, но дальше мне не интересно
Dmitry
смотрите, у меня есть тысячи, а в перспективе и десятки тысяч хостов ну... с какимто вэбом. пусть LAMP. мне регулярно надо или апач там переконфигурить, или бэкап по схеме сделать, или ngix переконфигурить, или пользователя в базу докинуть. и так далее. но это всегда точечные оппрации с конкретным хостом. т.е. все хосты идентичные по принципу работы, но абсолютно разные по конфигам. чем мне нравится ansible - я ничем не связываю хосты с управлялкой, даже сложные вещи - ансибл подкидывает туда питоновский код и исполняет. что смушает - я не использую массовость.это нормально или люди иначе делают?
Все правильно думаешь, это конфигурация и для этого ансибл доктор прописал. Единственное, что в твоей ситуации "тысячи", а особенно "десятки тысяч" лично у меня это был бы всё-таки не ансибл
Dmitry
Но ты не хочешь агента (почему-то, но тут хозяин барин как бы), поэтому пусть будет ансибл :)
🏳️ Phil
У меня сейчас агент самописный
Dmitry
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
и там оно и тут оно. только, Петька, есть нюанс (с)
🏳️ Phil
Собственно я сейчас разрываюсь:
1. Делать обработку тасков с помощью ansible и не ставить ничего на конечных хостах.
2. Не иметь себе мозг, делать агента для конечных хостов и убрать целый уровень абстракции. Но потерять универсальность и всё делать самому кодом без типа универсального конфигуратора. И да, на хостах будет доступ к очередям, некооторым метаданным управлялки и так далее
Dmitry
Dmitry
да хоть весь playbook генери по шаблону с изменениями, ничего страшного
🏳️ Phil
0. Велосипед сейчас _уже_ есть. Лет 14 :)
0.1. Раскрываю тему - управление шаредом
🏳️ Phil
Dmitry
да, реально проще начать с ансибла, когда станет неудобным (и если! ибо не факт), салт сам собой нарисуется :)
Ivan
а зачем салт?
🏳️ Phil
ммм... ну собственно у меня вопрос можно раскрыть как "использовать ansible/salt или тупо самому написать"? Там для всего всё равно придётся писать кастомные плагины. нету у ansible стандартного "сделай бэкап по такой схеме вон того и обзови его так". или "вот должен быть апач с такой=то версией php и с такой-то, а с другими не должно быть, а конфиги вот".
Ivan
Какие у него киллер-фичи?
Ivan
а самому написать - это на перле?
Ivan
или на баше?
Dmitry
🏳️ Phil
меня пока в этой идее привлекает то, что у ansible есть там типа статусы, всякие template, copy и так далее
🏳️ Phil
Dmitry
я не понимаю тогда, что такое "мультисервисная роль" :)
🏳️ Phil
у ansible нет роли с поддержкой двух апачей
Dmitry
шта?
🏳️ Phil
ссылка?
Dmitry
вангую какие-то проблемы с терминологией
🏳️ Phil
Есть хост с мултиинстанс апач. Ansible стандартно так не умеет
Dmitry
точно, проблемы с терминологией
Dmitry
смешались в кучу кони, люди, плейбуки, роли, таски и "кастомные плагины"
🏳️ Phil
Мультиинстанс апач - это стандартный термин. Он быстро гуглится и используется например убунтой.
Dmitry
ты "нестандартно", без всякого ансибла, два апача разных версий, как ставишь?
🏳️ Phil
Апач одной версии. Из просто несколько запущено
Dmitry
я не понимаю, причем тут термины убунты, когда я говорю про проблемы с терминологией ансибла
Dmitry
ага. одной версии. запущено несколько.
Dmitry
в чем проблема?
Dmitry
добрый дядя не написал роль и не положил в galaxy чтоли?
🏳️ Phil
Например. Там сложно без плагина. Я пробовал - изврат получается. Надо плагин мутить
🏳️ Phil
Я бы даже сказал, не то что сложно, а незачем
Dmitry
я конечно апач в диком виде не видел лет 15 уже, далек от проблем шареда.
но там ведь дело сведется к тому, что просто несколько init script'ов и несколько конфигов?
Dmitry
в идеале бы конечно вообще сделать нормально. как у uwsgi например в убунте
🏳️ Phil
Ну... +- . Ничего сложного. проблема только в обходе всего этого и оценке ситуации
Dmitry
но для этого в принципе конфиг не нужен. это обычная роль, довольно простая
🏳️ Phil
А как у uwsgi в убунте?
Dmitry
ну да, не готовая из galaxy
Aleksey
у меня ни разу не получилось :(
Aleksey
только как примеры
Dmitry
ну там app-available и app-enabled, типа как виртхосты апачей обычно. и обертка вокруг небольшая.
конфиг инстанса coolinstance.ini кладешь в папку, потом service uwsgi start|stop|restart|status coolinstance начинают работать
логи сами собой создаются в /var/log/uwsgi/app/coolinstance.log и прочий там синтаксический сахар
Dmitry
о, глянул, в убунте дебиане апач и сам так умеет, почти как uwsgi
🏳️ Phil
да
🏳️ Phil
во фре тоже
Dmitry
кривовато правда, /etc/apache2-xxx это немного не то пальто, что /etc/uwsgi/apps-enabled/xxx, но и так сойдет
Dmitry
ну тогда роль вообще простая
Dmitry
/me стошнило под стол от слова папет, excuse me :D