Aleksey
Роли в целом не пересекаются
так если не пересекаются то и всё ок. у вас не болит
George
Т.е. вы жалуетесь на то, что микроскопом плохо забивать гвозди?
Нет, я жалуюсь, когда другие люди говорят, что микроскоп можно положить в toolbox для молотков (reusable roles).
Vladislav 👻
Aleksey
Т.е. вы жалуетесь на то, что микроскопом плохо забивать гвозди?
посоветуйте школу софистики где учились ?
Aleksey
Так наверно делать так надо, не?
роль nginx например то где много кто пересекается.
Aleksey
роль консула может тоже такой стать.
George
роль nginx например то где много кто пересекается.
Покажи перменные из nginx'овой роли. (имена). Я тебе придумаю контр-пример, который (выглядит невинно) но всё ломает.
Aleksey
В одном месте - в инфре
хорошо вам. у меня этих nginx-ов что у дурака фантиков
Vladislav 👻
Как я сказал, мне кажется надо менять сам подход
Aleksey
поднял морду для xxx сделай к ней https
Aleksey
для https сделай серты и поставь nginx
Aleksey
ну или whatever
George
Смотрите, вот мои тезисы: Универсальные роли имеют много проверок и условий. Неуниверсальные роли полезны только там, где их написали. Роли изолировать друг от друга сложно. Тратить время на эту изоляцию малоэффективно. Проверять роли в отрыве от плейбук тоже малоэффективно. Проверять надо плейбуки, потому что это то, что является готовым модульным элементом для квадратно-гнездового использования. Так что роли пишутся в проекте as simple as possible, а проверяются только в контексте применения ролей. Время теста плейбуки не сильно отличается от времени тестов роли (и там и там медленные тесты на сайд-эффектов), т.е. скорости "юнит-тестов" от ролей всё равно не получить. Итог: экономьте время и пишите тесты для плейбук, а не для ролей. ∎
Aleksey
первый час прошёл.
George
(я в это время воюю с кривыми модулями брокадных свитчей... Там такая бездна, что вся фигня в ансибле - это верх благоразумия и консистентности).
Aleksey
а я в это время прокастинирую написание доки
Aleksey
игнорирорование аргументов. бинго!
George
Ничего не понял, если честно
Искрене сочувствую.
Timur
Искрене сочувствую.
Если роли написаны нормально - описаных вами проблем не будет. Они все от несоблюдения best practices
Aleksey
пошёл второй час. и новый круг
George
???
Кодировка съехала.
tutunak
Если роли написаны нормально - описаных вами проблем не будет. Они все от несоблюдения best practices
тогда ты ограничиваешь себя только своими ролями а это так себе а не реюзабельность
Timur
Если весь пойнт был в том, что в плейбуке или в другой роли можно написать какую-то дичь, которая будет вызывать коллизии с другими ролями, то это и так очевидно
Timur
Это обратная сторона гибкости
Timur
Но вероятность подобного можно легко минимизировать, избегая плохих практик в коде ролей
Anuar
Всем привет! Подскажите мне плиз как сделать include ямла с параметром when?
Timur
Стандартный пример из документации
George
Но вероятность подобного можно легко минимизировать, избегая плохих практик в коде ролей
А как ты заставишь остальных избегать плохих практик в коде ролей? Т.е. вот стоит Д'Артаньян весь в best practices, а рядом galaxy с ролями. И что Д'Артаньяну делать?
Anuar
Стандартный пример из документации
Вот что-то я не нашел такого
Vladislav 👻
каюсь, роль nginx так и делал
Aleksey
она большая и велосипедная
Vladislav 👻
не зря, слишком много баша, часть вещей для наших задач была не удобно сделаны
Aleksey
и всё потому что конфиг nginx не ямль
Timur
Вот что-то я не нашел такого
- name: Include task list in play only if the condition is true include_tasks: "{{ hostvar }}.yaml" when: hostvar is defined
George
Проверять роли перед использованием, разумеется
А что именно ты проверяешь в чужих ролях? Вот, например, что в этой роли хорошо, а что плохо? https://github.comhttps://github.com/debops/debops/tree/master/ansible/roles/authorized_keys (Я не тролль, я не тролль, я просто хочу make a point).
Vladislav 👻
она большая и велосипедная
ааа, ты в этом плане, да, поэтому я от туда просто наброски брал, одна из первых моих ролей была на ansible в целом, поэтому надо было что-то за основу взять, но конечный результат - переписано почти 90%
Timur
именно не tasks а просто - include:
Почему просто include? Откуда такое странное желание?
George
Это не роль
Поправил.
Отделение Bereke Bank
А как ты заставишь остальных избегать плохих практик в коде ролей? Т.е. вот стоит Д'Артаньян весь в best practices, а рядом galaxy с ролями. И что Д'Артаньяну делать?
после оф.роли nginx с ее 10к строк ямла для добавления одного виртхоста я, извиняюсь за выражение, ебал в рот роли из галакси
Anuar
Почему просто include? Откуда такое странное желание?
да как-то в самом начале такое пошло...
Vladislav 👻
кстати, вспомнил, что мне нужен был node.js роль для одного прокси, чистый гелекси взял, запустил и полетел
George
после оф.роли nginx с ее 10к строк ямла для добавления одного виртхоста я, извиняюсь за выражение, ебал в рот роли из галакси
fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'рот' is undefined\n\nThe error appears to be in '/tmp/u/ebal.yaml': line 8, column 6, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nT\nWe could be wrong, but this one looks like it might be an issue with\nmissing quotes. Always quote template expression brackets when they\nstart a value. For instance:\n\n with_items:\n - {{ foo }}\n\nShould be written as:\n\n with_items:\n - \"{{ foo }}\"\n"}
Timur
да как-то в самом начале такое пошло...
Такой синтаксис давно устарел. Используйте актуальные конструкции
Anuar
а какие актуальные?
Aleksey
правда переодически ставлю таску на день для обновления версии роли
Aleksey
ибо они всё ломают и ломают
Aleksey
гавно какое то. почему такая сложная конструкция в https://github.com/debops/debops/blob/master/ansible/roles/authorized_keys/tasks/main.yml#L55
Aleksey
вынести в отдельный шаблон
Aleksey
https://github.com/debops/debops/blob/master/ansible/roles/authorized_keys/tasks/main.yml#L109 ужс
George
В принципе, нормальная роль. Мне только with_flattened не очень нравится. Но это уже дело вкуса. Код хороший.
А я бы такое через MR не пропустил от слова "совсем". main.yaml, строка 50 и дальше.
Aleksey
https://github.com/debops/debops/blob/master/ansible/roles/authorized_keys/tasks/main.yml#L22
Aleksey
пздец
Aleksey
зато дефолтс пустой и бесполезный
Lamobot
А чего роль делает-то? :)
Aleksey
я бы всю вот эту котовасию унес в нее и переменные передавал бы через плейбук. и резолвил бы их там
Отделение Bereke Bank
George
А чего роль делает-то? :)
Смузи из переменных.
Vladislav 👻
гавно какое то. почему такая сложная конструкция в https://github.com/debops/debops/blob/master/ansible/roles/authorized_keys/tasks/main.yml#L55
О, кстати интересный пример префикса для переменных, через два подчеркивания
Timur
А я бы такое через MR не пропустил от слова "совсем". main.yaml, строка 50 и дальше.
Ну, там действительно местами переусложненная логика, согласен. И что?
Vladislav 👻
баян :)
👆🏻
George
Ну, там действительно местами переусложненная логика, согласен. И что?
Ну да, у этого человека местами переуплотнённые области. Ну и что тут такого? Уберите его с рельсов и поедем дальше на паровозе.