Sergey
Так сорян. не в тему совсем
Жёстко не в тему, факт.
John
Pm2 под node.js заточена, а rundeck уневирспльная тема как я понял из обсуждения. Над попробовать.
Sergey
Pm2 под node.js заточена, а rundeck уневирспльная тема как я понял из обсуждения. Над попробовать.
Тьфу и ещё раз тьфу. pm2 (блин, придётся сходить вымыть руки после этого поста) - диспетчер процеесов. Rundeck - веб-GUI для запуска процессов/Ansible-плейбуков/модулей.
John
ага, когда не умеем писать systemd unit / init script.
Заявление из разряда фуфуфу ansible удобен когда не умеешь писать скрипты на bash/python
Max
стандартный маршрут запуска сервисов в системах существует. чем pm2 отличается? тем что дает людям тот же функционал, своим способом (как и supervisord)
Sergey
С чего такая реакция коллега? Зря. Под проекты на node.js очень удобная тулза.
Удобная чтобы запускать проекты на Node.js? Лол. Systemd же нинада, да?...
Max
Удобная чтобы запускать проекты на Node.js? Лол. Systemd же нинада, да?...
не пугайте его, Сергей. может вернется человек, и объяснит мне какой то ракурс.
Max
на полном серьёзе без иронии.
Max
блин, пропустил праздник, немнго времени назад тут было 1337 пользователей :)
Max
Иван, долго пишите... (Yehohanan -> Iωάννης = Johannes, Ioan, Ivan, John)
John
объясни что я не прав. приму с радостью.
Аргументирую: 1)Запуск контроль, логирование, профилирование ресурсов под node.js проект/проекты в одном красивом флаконе 2)Быстрый старт. настройка. Это только с точки зрения администрирования. разработчики думаю еще пруфы могут добавить. В общем я о том что за меньшее время можно больше сделать с помощью конкретного инструмента в частности pm2.
Sergey
Прекращаем.
Sergey
Хорош уже.
greydjin
Привет, кто-нибудь может подсказать почему проверка не работает? - (item.value[inventory_hostname] is defined and item.value[inventory_hostname] is match('.*avon-(admin|deployer|support|automation).*')) or (item.value['all'] is defined and item.value['all'] is match('.*avon-(admin|deployer|support|automation).*')) or (item.value.group is defined and item.value.group is match('.*avon-(admin|deployer|support|automation).*')) https://www.linux.org.ru/forum/general/14824919?cid=14825282
greydjin
Исходный код роли - плохой, негодный
Возможно. Мне не с чем сравнивать
Max
так опиши что ты делаешь. там какая-то вложенность, не факт что полезная.
Timur
Там в роли говнокод с циклом по группам и инвентори с дурацкими проверками
greydjin
можешь в 2-3 слова описать что ты делаешь?
Да. Роль для создания пользователей на хостах. В исходной роли есть возможность 1) создать пользователей из группы админ на всех хостах 2) указать конкретный хост и группу пользователей Других возможностей нет. Цель - добавить возможность указать группу хостов для группы пользователей
Timur
А еще там yaml anchors в переменных, что тоже добавляет веселья
Timur
Программирование на yaml :)
greydjin
у меня есть подозрение что эту роль писал бывший php программист. если он не скачал ее с интернета
greydjin
Для этого LDAP есть так-то.
Это другая тема - централизованная авторизация. Она имеет свои плюсы и минусы. Но у меня то вопрос о том почему проверки when не оттрабатывают
Timur
у меня есть подозрение что эту роль писал бывший php программист. если он не скачал ее с интернета
Скорее всего. Иначе непонятно, зачем для элементарного назначения исходных словарей групп и юзеров натыканы anchors
Max
Это другая тема - централизованная авторизация. Она имеет свои плюсы и минусы. Но у меня то вопрос о том почему проверки when не оттрабатывают
стратегический ответ: потому что говнокод. с говнокодом легко сделать много тактических ошибок, напр в длинных условиях when.
Max
попробуй привести все к цепочке AND
Max
каждый компонент этого условия запиши как элемент списка условий and: when: - cond1 - cond2 - cond3
Max
это уже визуально предаст говнокоду некоторую удобоваримую форму, косяки которой легче обнаружить.
Max
смотри на это как на ядовитый legacy code.
Timur
это уже визуально предаст говнокоду некоторую удобоваримую форму, косяки которой легче обнаружить.
Да там вообще исходно ущербный подход с when по наличию inventory_hostname в группе
Timur
😜
Max
не серчай на него
greydjin
каждый компонент этого условия запиши как элемент списка условий and: when: - cond1 - cond2 - cond3
но условия у меня взаимоисключающие, если написать and - задача никогда не попадет в условия выполнения
Max
но условия у меня взаимоисключающие, если написать and - задача никогда не попадет в условия выполнения
по закону de Morgan любую цепь or можно превратить в цепь and. или у вас условия не бинарные, а тренарные?
Max
просто вместо однострочной портянки or легче жевать портянки покороче из and.
greydjin
короче я просто удалил остальные условия и оставил только одну строку when: - (item.value.group is defined and inventory_hostname in groups[item.value.group] is match('.*avon-(admin|support).*')) и она не сработала
Max
таск какой-то конкретной группы должен запускаться только на машине этой группы
greydjin
ну да
Max
это делается на уровне play
Max
знаете как вешать переменные по hostgroup в инвентарь?
Max
т.е. един комп может быть и в нескольких группах.
Max
вы же сейчас дублируете это с помощью кривого match. в котором вероятны ошибки.
Max
раскидайте компы по группам.
Max
тачки где бегут?
Max
амзн? гугл? ажур?
greydjin
компы раскиданы https://github.com/greydjin/publicansible
greydjin
Max
тогда на фига логика проверки принадлежности к группе?
Max
если плэй играет по dev, то все тачки на всех тасках бегут на dev
Max
приём...
greydjin
тогда на фига логика проверки принадлежности к группе?
Я не понял вопроса, мне нужно добавить пользователя на группу хостов - для этого
Max
это роль, правильньо?
greydjin
да
greydjin
Max
роль запускает play из какого-то playbook-а, правильно?
greydjin
Насколько я понимаю, роль запускает tasks
Max
на мой вопрос не ответил :) зато на другой - да.
Max
то что ты спэйстил - это 1 play из какого-то playbook
greydjin
это?
Max
да. на 2й строке у тебя написено, что ты бежишь на 1 компе.
Max
если ты добавляешь юзера всегда на группу, то укажи группу через командную строчку.
greydjin
да, таким образом у меня описаны хосты - db-dev-avon1.yml и указаны роли для хоста
Max
так значит нет ролей для групп? для кажого хоста свои роли?
greydjin
да
Max
маразм.
Max
это фундаментальный маразм.