Vadim
мы тут неделю назад уже обсуждали почему хендлеры не темплейтятся и как накладывать жгут если очень хочется выстрелить себе в ногу
ShadoWalkeR
А можно ссылку на то как себе в ногу выстрелить?)
ShadoWalkeR
А нашел
Tadeusz
_странная наркомания_
ShadoWalkeR
У меня просто своя атмосфера) И свои представления о том как должны работать те или иные вещи, даже если они этого не хотят 😃
ShadoWalkeR
Я бы не сказал что творю пиздец
Vladimir
Я бы не сказал что творю пиздец
у ансибла есть довольно чёткое описание что и как работает. И что для чего нужно. Так же есть набор бестпрактик. В данном случае ты всё это игнорируешь и пытаешься сделать монстра. Как минимум динамические хендлеры это пиздец.
ShadoWalkeR
В данном случае это было бы удобно и не потребовалось бы кучи лишней копипасты. Но пилить генерацию хэндлеров при запуске плейбука мне уже стало лень 😃
Nklya
А что, тут есть целые целые компании, которые творят пиздец какую дичь и ещё и с гордостью рассказывают об этом на конфах и митапах
ShadoWalkeR
Я вчера объяснял, но еще раз повторюсь - проблема в следующем - мне нужно навскидку уже сейчас 10 хендлеров по одному шаблону: name: systemd_restart {{ daemon }} systemd: name={{ daemon }} enabled=yes state=restarted daemon_reload=yes Если взять другой плейбук, то к ним еще 8 добавляется с той же самой задачей. А что если у меня количество модулей возрастет? Придется отслеживать что список хэндлеров актуален и копипастить - в этом же нет смысла
ShadoWalkeR
По-момему ансибл и нужен чтобы вот такое автоматизировать
Nklya
Ансибл нужен для того чтобы код был ещё и поддерживаемым. А для этого это не должны быть монструозные простыни говна на ямле А для этого его декомпозируют по ролям. А в таком случае как правило не рождается монстров с десяточкой хендлеров
Nklya
И проблема исчезает
ShadoWalkeR
Я ансиблом генерирую демонов для проектов. Или обновляю systemdшные сервисы. Поэтому постоянно приходится вызывать systemd. Хотел через шаблонный хэндлер это упростить
Gleb
Я ансиблом генерирую демонов для проектов. Или обновляю systemdшные сервисы. Поэтому постоянно приходится вызывать systemd. Хотел через шаблонный хэндлер это упростить
Тебе же явно намекают что ты должен свой плугинчик намутить и пропихнуть его в апстрим, под капотом могут быть любые наркотики, но претензий уже ни у кого не будет
Vladimir
Ну и ещё ансибл всячески рекомендует от вот такого формата избавлятся name: systemd_restart {{ daemon }} systemd: name={{ daemon }} enabled=yes state=restarted daemon_reload=yes
ShadoWalkeR
Пфффффф - замусорить апстрим еще одним плагином, который как и многие другие из состояния "потом допилю" перейдет в "будем надеяться что с этой версией ансибла это заброшенное г будет работать нормально" 😃
Vladimir
если тебе нужно просто положить юнит и его стартануть тебе хендлер не нужен
Vladimir
я про значения переменных через varname=1
Vladimir
Рекомендуют делать всё ямллайк
ShadoWalkeR
Нужен. Сейчас мне приходится пилить такую конструкцию зачастую: - name: Generate {{ daemon }} template: .. - name: Reload systemd systemd: .. Помоему это проще: - name: Generate {{ daemon }} template: .. handler: restart_systemd {{ daemon}}
Vladimir
Ну так раскатка миллиона юнитов не частое дело.
Vladimir
Юнит как и юзер и директории в пакете должен быть
ShadoWalkeR
Огромнейшее "спасибо" за то что на блок нельзя повесить loop - 2-3 шага выкидывать в отдельную таску изза позиции разрабов "Мы считаем что этого делать не нужно" просто идиотизм
Gleb
Юнит как и юзер и директории в пакете должен быть
В каком пакете? Аля собирать рпм каждый раз под такую задачу?
Vladimir
у тебя код поменялся продукта собирай рпмку.
ShadoWalkeR
Я при раскатывании сервера не генерирую только 1 вещь - скопировать скрипты из гита. Все остальное - запихать в systemd, добавить на мониторинг, запустить/перезапустить у меня сделано шаблонами, генерацией и тд
ShadoWalkeR
И слышать что ансибл не для этого очень странно - а для чего он тогда нужен?
Vladimir
Ансибл для этого но и использовать его нужно так как он задумывался
ShadoWalkeR
Никаких шаблонов - херачим портянки аналогичные башу?
Vladimir
ну так класть миллион юнитов в одной роли это странный путь.
Vladimir
педалить киллометровые лупы тоже так себе затея. Это как регекспы на пол экрана
ShadoWalkeR
А у меня микросервис - не слышали о таком? Когда программа состоит из нескольних независимых модулей. И с точки зрения интеграции в systemd они отличаются только именем запускаемого скрипта
Vladimir
Ты для проверки нехернюлиясделал давай другим свои роли почитать. Если человек с ходу не понял как оно работает значит чтото не так
Vladimir
Ну так не крути микросервисы на одной ноде
Vladimir
Это как бы не путь микросервисов
Vladimir
и если всё таки очень надо собирай рпмки или дебки а ансиблом их ставь.
ShadoWalkeR
Путь путь. Просто они являются разными интерфейсами - каждый для своей задачи. Вторая половина накатывается на другие сервера.
Vladimir
Тогда пакеты. у всех сейчас есть плагины для сборки. Собираются если спеки не кривые быстро
Vladimir
Получаем версионирование из коробки и быстрый откат
Nklya
Или докер
Vladimir
Ну докер это отдельная инфраструктура к которой надо прийти
ShadoWalkeR
Получаем версионирование из коробки и быстрый откат
У нас для этого есть гит и тестовый стенд.
Vladimir
вот только нативные средства системы ничего про твой гит не знают.
Vladimir
а на чём у тебя микросервисы?
ShadoWalkeR
Руби
Gleb
Это как бы не путь микросервисов
пошёл писать ишшую в гит кубернетеса, а то вон чё придумали демоны
ShadoWalkeR
вот только нативные средства системы ничего про твой гит не знают.
А в чем смысл ансибла тогда? Подключить репы и накатить пакеты тогда можно простым баш скриптом
Vladimir
пошёл писать ишшую в гит кубернетеса, а то вон чё придумали демоны
из контекста не вырывай. много микросервисов на одной ноде. Не путь микросервисов.
Vladimir
но как правило нужно ещё конфиги положить чтото в системе поднастроить. И тд
ShadoWalkeR
из контекста не вырывай. много микросервисов на одной ноде. Не путь микросервисов.
Еще раз повторяю - каждый микросервис на ноде - интерфейс для своей задачи.
Vladimir
Нода упала нет твоих микросервисов
Vladimir
целой пачки
ShadoWalkeR
ShadoWalkeR
Горизонтальное масштабирование - не не слышали?
Vladimir
деградация сервиса - не не слышали?
ShadoWalkeR
Резервирование там. Распределенные системы?
Vladimir
если у тебя при выходе из строя одной ноды пропадает больше одного сервиса это говорит о том что что-то нетак
Vladimir
И не важно работает прод при этом или нет.
ShadoWalkeR
То что у меня упадет эта нода означает только то, что прекратят обрабатываться задачи которые на ней крутились. Просто возрастет нагрузка на другие ноды
Vladimir
Для микросервисов специально кубернетис придумали
Vladimir
Который решает все выше тобой заданные вопросы.
ShadoWalkeR
Вы даже не можете понять что у меня интерфейс от основной логики отделен за счет микросервисности
ShadoWalkeR
А пытаетесь рассказывать что я делаю все неправильно
Nklya
В общем, это называется кубернетис на ансибле и костылях
ShadoWalkeR
Еще один аналитик от бога
Gleb
из контекста не вырывай. много микросервисов на одной ноде. Не путь микросервисов.
вообще связи нет между архитектору монолит\микросервис и количеством нод. А юнихвей тоже видимо не путь линуха
Vladimir
Ну какбы линукс уже давно на юниксвей плевать хотел.
ShadoWalkeR
Пойду лучше поработаю
Vladimir
Тот же системд прям юниксвей,
Nklya
Кстати, если у тебя все что нужно - сгенерировать шаблон и рестартануть, нафига тебе вообще хендлеры? Делай просто рестарт по changed
Vladimir
Об этом выше писали. Там типо кода больше.
Vladimir
И не красиво получается
Nklya
Не, он там лепил какую-то дичь с динамической генерацией хендлеров