Max
если тебе суперважно чтобы фунционал какой-то роли не повторялся - тогда вызывай тасклист роли.
Timur
Если какой-то момент часто повторяется в разных сценариях - логичнее вынести его в отдельную роль
Max
по-моему на таком уровне заморачиваться ... лучше создать конвенцию как в ролях хранить данные о ресурсах.
Max
т.е. напр. vars/groups.yml пускай хранит список данных групп.
Max
на вопрос что имеет лучший смысл можно отвечать только поняв общую картину, имхо.
Timur
Но минимизирование дублирования кода - это общепринятый best practice
Max
однажды я создал такую конвенцию, но несмотря на документацию, подчеркивание, что инфу нужно внести в 1 месте, через полтора года я увидел, что работники клиента понастроили 40 бочек, сломали динамический оббег ролей, сборку пакетов, групп и пользователей, баз данных и т.п.
Max
в общем по уровню кадров тоже надо ориентироваться
Max
по конвенции, роли были модальные, плевались списками ресурсов - пакетов, групп, пользователей.
Max
это очень сильно ускоряло время, в ролях могли быть повторяющиеся пакеты.
Max
и т.д.
Max
это было слишком для корпоративных т.н. дево псов.
Max
собак от Бога 🤣
nett00n
диво-псы
Max
देव ѱ
George
диво-псы
👍👍👍👍
[IPT] Dmitry
Приветы всем! РЕбят, есть какой-нибудь просто способ получить playbook execution time в переменную?
Ждун
https://docs.ansible.com/ansible/latest/plugins/callback/profile_tasks.html
[IPT] Dmitry
https://docs.ansible.com/ansible/latest/plugins/callback/profile_tasks.html
это же stdout, а мне переменную нужно
Vladislav 👻
а можно как-то сделать гибкую переменную, если там стринг - превратить в лист из одного элемента, а если там лист - то оставить листом?
Sergey
Вечер подметания плаца ломом, как я посмотрю 😊
Vladislav 👻
хорошо, можно ли завернуть как-то в блок таски с ролями в плейбуке? а то раздражает постоянно писать environment: "{{ proxy_env | default({}) }}"
Sergey
Английским по белому: это для тасков, не для ролей. https://docs.ansible.com/ansible/latest/user_guide/playbooks_blocks.html#blocks
Vladislav 👻
Да, это я уже понял, наверно стоит логику сразу в таску унести
Anonymous
password required pam_permit.so Hi I need to replace the above line with the below line is it possible ? password required pam_cracklib.so try_first_pass retry=3 minlen=12 lcredit=1 ucredit=1 dcredit=2 ocredit=1 difok=2
Sergey
password required pam_permit.so Hi I need to replace the above line with the below line is it possible ? password required pam_cracklib.so try_first_pass retry=3 minlen=12 lcredit=1 ucredit=1 dcredit=2 ocredit=1 difok=2
Yeap. "Lineinfile" module can do the trick for you, but you explicitly request for pain/going to shoot your foot with this. Generic rule of thumb is to avoid all kinds of "add/replace/remove-just-this-one-line" stuff. You could ask "why?" and the answer is simple: responsibility. When it's abount configuration files, it's much better when only one person/system/tool takes charge of file, instead of the whole zoo.
Anonymous
Ok thanks for the information le tme try
Max
Ok thanks for the information le tme try
you may consider extracting the line into a custom file, and include it.
Max
this way you will not need to edit the big file next iteration.
Timur
Кстати, интересный вопрос возник. Из тех, кто пользуется ролями с Galaxy - какие роли вы используете чаще всего? Или какие чаще всего берете за основу для собственных ролей в случае кастомизации?
Vladislav 👻
Тот чувак, который кучу сделал, у него nginx прикольно сделан, на его основе писал свой
George
Там чуваков , которые пишут - много. Герлинг Гай, наверное?
Vladislav 👻
https://galaxy.ansible.com/geerlingguy/nginx
George
Да, он
George
Он же книгу писал как ансибл правильно использовать )
Vladislav 👻
У него наиболее адекватные роли, имхо. Хотя конечно не идеальны
Vladislav 👻
Он же книгу писал как ансибл правильно использовать )
Ооо, вот этого не знал, надо почитать
Nklya
Вот эти еще чуваки неплохие роли пишут https://github.com/jdauphant https://github.com/ChristopherDavenport
Nklya
И вот еще чуваки из редхата пилят роли https://linux-system-roles.github.io
George
Гы. Я промолчу :)
Почему ? Думаешь, что герлинг Гай графоман ?
George
А для прометеус рекомендкю роль от cloud-alchemy
Nklya
нжинкс например https://github.com/jdauphant/ansible-role-nginx
Timur
Почему ? Думаешь, что герлинг Гай графоман ?
У него часто откровенный треш в ролях. Башсибл, строчный синтаксис, лишние сравнения, присваивание дефолтных переменных в коде и т.п.
Nklya
Имхо в ансибле очень все печально с комьюнити ролями
Timur
Ну, а что есть лучше ?
Мы стараемся делать лучше
George
Сольт формулы, имхо, лучше пишут
Nklya
или очень простое или пиздец какое переусложненное
Nklya
Плюс отсутсвие общих гайдлайнов и каждый в итоге приседает как хочет
Timur
Ссылку давай
Давал уже неоднократно же
George
или очень простое или пиздец какое переусложненное
Ну, а что делать. В случае с nginx - мне вообще проще всего было бы готовые конф файлы подкинуть, чем переводить их в ямл формат
George
Давал уже неоднократно же
Напомни ещё раз, невнимателен, увы
checkdiff
Я тут роль графаны заценил: https://github.com/cloudalchemy/ansible-grafana
George
Я ж говорил выше - прометеус, алертманагер и графана у них ок
checkdiff
Ну, они норм написали
Ага, но изучать не один час :(
George
Ага, но изучать не один час :(
Ну, да. Я с алертманагером и прометеусом день убил
George
И бага у них есть ) и не одна
Nklya
Я про гайдлайн общий.
Nklya
понятно что в каждой компании что-то свое есть
Timur
Но он вполне логичный и следует общим принципам