Timur
Привет, подскажите как распарсить json такого вида средствами ансибла, безо всяких jmespath, jq:
[
{
"Id": "some_id",
"Name": "some_name"
},
{
"Id": "some_id1",
"Name": "some_name2"
}
]
А точнее зная значение какого-нибудь ключа, получить значение другого ключа этого же элемента, например:
я знаю, что есть Name: some_name2, как мне достать Id: some_id1
json прилетает именно в таком формате [json_body].
Не нужно ничего парсить. json - родной формат для ансибла
Max
если тебе суперважно чтобы фунционал какой-то роли не повторялся - тогда вызывай тасклист роли.
Timur
Timur
Если какой-то момент часто повторяется в разных сценариях - логичнее вынести его в отдельную роль
Max
по-моему на таком уровне заморачиваться ... лучше создать конвенцию как в ролях хранить данные о ресурсах.
Max
т.е. напр. vars/groups.yml пускай хранит список данных групп.
Max
на вопрос что имеет лучший смысл можно отвечать только поняв общую картину, имхо.
Timur
Timur
Но минимизирование дублирования кода - это общепринятый best practice
Vladislav 👻
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
[IPT] Dmitry
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
Anonymous
Ok thanks for the information le tme try
Sergey
Max
this way you will not need to edit the big file next iteration.
Timur
Кстати, интересный вопрос возник. Из тех, кто пользуется ролями с Galaxy - какие роли вы используете чаще всего? Или какие чаще всего берете за основу для собственных ролей в случае кастомизации?
Vladislav 👻
Тот чувак, который кучу сделал, у него nginx прикольно сделан, на его основе писал свой
George
George
Там чуваков , которые пишут - много. Герлинг Гай, наверное?
Vladislav 👻
https://galaxy.ansible.com/geerlingguy/nginx
George
Да, он
George
Он же книгу писал как ансибл правильно использовать )
Vladislav 👻
У него наиболее адекватные роли, имхо. Хотя конечно не идеальны
Vladislav 👻
Timur
Nklya
Вот эти еще чуваки неплохие роли пишут
https://github.com/jdauphant
https://github.com/ChristopherDavenport
Nklya
И вот еще чуваки из редхата пилят роли https://linux-system-roles.github.io
George
George
А для прометеус рекомендкю роль от cloud-alchemy
Timur
Nklya
нжинкс например https://github.com/jdauphant/ansible-role-nginx
George
George
checkdiff
Nklya
Имхо в ансибле очень все печально с комьюнити ролями
George
George
Сольт формулы, имхо, лучше пишут
Nklya
или очень простое или пиздец какое переусложненное
George
Nklya
Плюс отсутсвие общих гайдлайнов и каждый в итоге приседает как хочет
checkdiff
Я тут роль графаны заценил: https://github.com/cloudalchemy/ansible-grafana
George
George
Я ж говорил выше - прометеус, алертманагер и графана у них ок
George
Timur
George
И бага у них есть ) и не одна
George
Nklya
Я про гайдлайн общий.
Nklya
понятно что в каждой компании что-то свое есть
Timur
Timur
Но он вполне логичный и следует общим принципам