Egor
Dmitry
Sergey
Привет. Скажите, а наследование ролей есть в каком-то работающем виде? Хочу роли сайтА, сайтБ параметризируемые хостнеймами (разными). Они должны наследоваться от роли сайт, которая выполняет общие таски. Пробовал dependencies, include_role, import_role - во всех случаях роль сайт выполняется два раза, но с одним и тем же хостнеймом
У тебя, по сути, должна работать одна и та же роль, поэтому тебе придётся разобраться в объектной модели Ансибла.
Хост = "сущность, к которой можно каким-то обрзаом подключиться и запустить команду/команды"
Роль = "набор заданий (тасков), определённым образом сгруппированный, дополняющий загрузчики файлов Ансибла некоторыми предустановленными путями"
Sergey
Если хост, на котором сайтА и сайтБ должны появиться, один и тот же, то ты тупо выцываешь роль в цикле, при этом роль применяется к одному и тому же хосту.
Если же нет - то хосты включаются в группу, а роль применяется к группе. Соответственно, отличия сайтов друг от друга переезжают в хостварс.
citius
думаю что болт будет.
в requirements можно указать версию роли в гите, но он их в одну и ту же папку скачает.
так что да, что последним то и в дамках.
citius
очертите проблему плз, не очень понятно о чем речь.
citius
ну рантайм то один.
citius
избегайте этого.
citius
или в хостварс определять, но дебажить это, будет, ммм
citius
да даже если в хостварс - хост на котором есть обе роли, будет некорректно отрабатываться
citius
я в своих ролях всегда префиксую переменные, чтобы пересечений не было
типа роли редиса и постгреса обе могут юзать какой нить cluster_name
citius
соответственно определяю отдельно redis_cluster_name и pgsql_cluster_name
citius
но в роли это есессно так и должно использоваться, а не просто cluster_name
Sergey
citius
а какие варианты еще есть например?
citius
ну ансибл же не язык программирования.
UglyKoyote
ты ещё скажи что ямл программистов нету))
Timur
А не надо так делать, если только это не специально согласованные роли с общим набором переменных
Timur
Да
Sergey
это всё просто для того, чтобы не поднимать свой уровент владения инструментом?
citius
кроме того, про "варианты" мне скорее более интересен вопрос чем заменить можно ансибл.
солт стек с еще бОльшими закидонами, и очень сложно оркестрировать что-то выходящее за рамки одного хоста.
папет - рубятина, и вроде дохлый практически в плане развития.
чеф - еще больше рубятина и еще кондовей.
citius
т.е. отказаться от ансибла то можно, но что делать, на питоне писать свои идемпотентные скрипты чтоли? :)
Timur
Глобальность переменных в ансибле - не баг, а фича
Sergey
Timur
Просто нужно понимать, что и зачем ты делаешь
Timur
А если хочется программировать - никто не мешает взять чистый питон и писать автоматизацию на нем
citius
и фича-то, кстати, офигенная.
Timur
Сделайте что-то лучше
UglyKoyote
кмк человек просто троллит чат. слишком уж жирно всё выглядит
Timur
Глобальность переменных с определением на разных уровнях позволяет очень гибко управлять конфигурацией
UglyKoyote
это как бы линуксятник пришел в чат виндовса и начал жаловаться на всё виндовое
Timur
И не думать - а глобальная у меня здесь переменная или нет
Timur
Напишите свой вариант ансибла. Если он окажется удобнее - все перейдем на него
Sergey
Ты, кстати, ступаешь по очень тонкому льду: можно провалиться прямо в R/O. Пятница, конечно, этот лёд чутка утолщает, но отсутствие какого бы то ни было конструктива в высказываниях катастрофически утончает .
Timur
UglyKoyote
вот блин.. а я то думал что ансибл это серебрянная пуля на все ситуации. 5 лет жил в неведении
citius
кмк, негодование не про минусы, а про отсутствие конструктива в этом обсуждении.
citius
именно про вас :)
да, ансибл работает так. хотите изменить - issue/PR, если будет круто - войдет в инструмент.
в чем конструктив дальнейшего обсуждения?
citius
по ансиблу тонна инфы в интернете - и книги и статьи, и лекции, и чего только нет
citius
https://www.reddit.com/r/ansible/comments/9ao3ae/resources_to_learn_ansible/
UglyKoyote
напиши юнит
UglyKoyote
я по себе знаю - ворчать это проще.. ибо критиковать это сильно проще
citius
а вы реально весь-весь тамошний материал уже изучили?
Sergey
"Фишки" is a lie. Нет в Ansible фишек. Изучи его обектную модель - и всё, фишки куда-то мгновенно исчезают.
citius
ну тогда сдаюсь
а, погуглите еще видео с конференций, @tnt4brain много интересного из подкапотного и бест практис рассказывал
Sergey
VolanDeMort?
У нас вроде тут запретных имён нет.
Sergey
Так, опять.......
А кто за тебя должен вот это всё сделать?
1) добавить то, чего нет, в подборку;
2) взять себя за что угодно и оформить PR с желаемыми фичами
Grek 🇺🇦
может вам разжевать и в рот положить?
тут как бы все добровлольно, нет того что надо и добрые люди не помогают за просто так - сделай, сам, разберись, напиши, покажи с примерами, гордись собой, еще и спасибо скажут.
а так - то давайте перестанем кормить троля
Sergey
Ну чтобы не ныть об этом в чате и не попасть в R/O за неконструктив
Sergey
Это последнее предупреждение
Sergey
Сутки R/O
Pit
Сутки R/O
Я тут пробегал мимо несколько раз за неделю и все ждал когда оно случится.
Anton
ребятули, тупой вопрос. допустим, у меня в плейбуке 100 задач, которые требуют become: yes и 100 задач, которым нужны всякие переменные типа ansible_user_dir, но не рутовые, а пользователя, в окружении которого плейбук запускается. на уровне плейбука я сделать become не могу получается, мне become каждой из 100 задач делать что ли? или вводить новые переменные? как это решается?
Sergey
Anton
а покрасивше никак?
Sergey
Здесь скорее речь о минимально возможном зле. А судя по количеству тасков - речь о башсибле?.....
Alexander
Сутки R/O
Сообщения того человека удалились? А то я хотел почитать и непонятно что за спор
Timur
Как вариант - внутри плея можно сделать блоки с become
Sergey
Alexander
Нехороший человек
Sergey
Anton
ну вот это некрасиво, если это бить по нескольким плейбукам
Sergey
Anton
Anton
ну получается, дублировать эти переменные
UglyKoyote
ansible_user
The user Ansible ‘logs in’ as.
не это надо? а то во мне слишком много кофе
Pit
Sergey
simplemice.eth
что бы люди писали в одно предложение а не столбиком, и по существу, спасибо тем кто это не делает
Anton
а потом еще овнера указывать, тоже придумывать новую переменную, а не использовать ansible_user_id
Anton
шот бред какой-то
Dmitry
Sergey