Oleksandr
Нарываешься в общем :)
Давайте про ансибл
Sergey
с восьмого пункта поорал
Ибо встречается "у меня мало что госы, так ещё и лапки до кучи". Типа "а вы догадайтесь, почему не работает, и что у меня тут, в суперпуперконторе, отключено в сетях, а что - SELInuх'ом".
Sergey
ты на госы то не наезжай, я чё мало показал что у нас норм?
Эмммм... А ты чего триггеришься-то, нормально же сидели 😊)) Это ж не тыканье пальцем в твою сторону, ты вроде в описанной фигне не замечен (по крайней мере, за последние полгода точно).
Sergey
ты на госы то не наезжай, я чё мало показал что у нас норм?
можно еси че оправдываться "у меня госы..." "эй ребят у него госы!"
Alex
Госы норм, хватит разжигать ненависть по этому поводу, я и так никого найти не могу в коллеги(
Sergey
ты вилочку пошире сделай:)
Alex
я до 180 на руки поднял
Oleksandr
Sergey
Это не про ансибл
ну вот че ты триггеришь админа:)))
Oleksandr
я до 180 на руки поднял
Чешишь тут публично?
Oleksandr
Админы - ок
Oleksandr
Sergey
другой вопрос, а что делать с участниками команды, которые говорят что "бест практис необязателен" для написания ролей?
Sergey
Админы - ок
Не ок. Оффтопик. Прекращай.
Sergey
другой вопрос, а что делать с участниками команды, которые говорят что "бест практис необязателен" для написания ролей?
Ссылками кидаться на бестпрактис. Либо пересаживать их с иглы самомнения на кровавую поддержку некачественных ролей.
Sergey
=)
Sergey
а то мне старший админ недавно сказал что таски в строчку нормально, и мол бестпрактис придумали не как обязательные правила
Sergey
а то мне старший админ недавно сказал что таски в строчку нормально, и мол бестпрактис придумали не как обязательные правила
"вот иди и сам топи урановые ломы в ртути" = пусть сам эти таски в строчку и читает
Sergey
😂
Sergey
😂
Sergey
Скрипты для Ansible не зря же из YaML на много процентов состоят. Если корректно писать - можно сберечь дикую кучу нервов при миграциях между версиями (былинно при 1.9 -> 2.0)
Oleksandr
Платите ему за к-во строк
Он и комментарии начнет писать
Sergey
Миграции
Нормально делай - нормально будет. У меня тогда ни одной плейбуки не сломалось, у одного из коллег пару недель всё горело.
Oleksandr
Да простой. Нет понятия нормально писать. Есть ошибки синтаксиса, к примеру. Получается, что старый вариант движка позволял ошибаться, а новый - нет.
Sergey
Да простой. Нет понятия нормально писать. Есть ошибки синтаксиса, к примеру. Получается, что старый вариант движка позволял ошибаться, а новый - нет.
Ничего не понял. Если писать по бестпрактисам - боль и унижение обойдут стороной. Если, как выше, писать таски в одну строку и обожечкикошечкионосломалось - ССЗБ. Обсуждать, в общем-то, тут нечего: бестпрактисы потому и бестпрактисы, что на них с большой долей веорятности равняются разработчики Ansible. Ну и это, если от Ansible подгорает - то сюда всегда можно скинуть толковый pull requests, чтобы сообщество проголосовало, либо issue - для той же цели, либо можно уйти в другой чат с нытьём. Ну и последнее прибежище - бан. Никто же не заставляет любить Ansible, не нравится таким, как есть - используешь другой инструмент либо меняешь под себя. Всё остальное - обычное хрычевание, которому здесь тоже никто не рад.
Oleksandr
Подробнее плз
Оффтоп. Нельзя
George
Оффтоп. Нельзя
В личку тогда напиши, плз
Kirill
Мне тоже перешлите. Я чот не нагуглил ничего, кто что съел.
Vladislav 👻
Я может поздно влезу, но вроде как ансибл сразу варнинги раскидывает, где проблемы
Vladislav 👻
Что мешает писать без варнингов хотя бы?
Vladislav 👻
Ну я решил не пинговать в такое время, думаю и так понятно, что речь про боли и миграцию
Alex
Ответ прост, иногда некогда
Vladislav 👻
Мне казалось, что тут не время играет роль...
Vladislav 👻
По крайне мере, не в том масштабе, чтобы на каждую таску затрагивать больше времени
Alex
По крайне мере, не в том масштабе, чтобы на каждую таску затрагивать больше времени
Я когда только устроился, в компании пол года уже не было админа. То что осталось от админа называлось ролями, но это каша, бред и фуфло. Переписывать работающее, пусть и кривое нецелесообразно. Я переписывал только тогда, когда надо было с этим работать и по времени быстрее было написать с нуля.
Yury
Одной группе можно назначить от нуля до полного списка ролей. Это как?
Yury
Отдельными плейбуками как ниже, или есть еще схемы? hosts: webservers roles: - foo - bar
Артём
Доброй ночи. Не могу подобрать правильный loop control для итерации по нескольким спискам в переменной. Есть список переменных с примерно следующей структурой: repositories_list: - name: repo1 os_list: - centos - rhel major_distribution_list: - 6 - 7 - 8 archs: - noarch - x86_64 и хочется наделать из него директорий в нужных сочетаниях, без лишних. Вроде такого набора: ./centos/6/repo1/x64/ ./centos/7/repo1/x64/ ./rhel/7/repo2/noarch/ with_subelements позволяет пройтись только по одному из вложенных списков, можно ли скормить в with_nested вложенные списки - я не смог.
George
имхо, да
Timur
vars: repositories_list: - name: repo1 os_list: - centos - rhel major_distribution_list: - 6 - 7 - 8 archs: - noarch - x86_64 - name: repo2 os_list: - centos - rhel major_distribution_list: - 6 - 7 - 8 archs: - noarch - x86_64 tasks: - name: Set separate lists set_fact: repo_list: '{{ repositories_list | map(attribute="name") | list }}' os_list: '{{ repositories_list | map(attribute="os_list") | flatten | list | unique }}' major_distribution_list: '{{ repositories_list | map(attribute="major_distribution_list") | flatten | list | unique }}' archs_list: '{{ repositories_list | map(attribute="archs") | flatten | list | unique }}' - name: Loop through product of lists debug: msg: '{{ item.1 }}/{{ item.2 }}/{{ item.0 }}/{{ item.3 }}' loop: '{{ repo_list | product(os_list, major_distribution_list, archs_list) | list }}'
Timur
У меня вот такой изврат получился. Вроде работает
Артём
Я попробую, как доберусь до консоли, и отпишу. Распарсить глазами не получается, выглядит немного сложнее, чем воображаемый with_subelements: - «{{ repositories_list }}» - os_list - major_distribution_list - archs Спасибо.
Alex
https://habr.com/ru/post/424127/ написал
Timur
https://habr.com/ru/post/424127/ написал
И при чем тут ансибл?
Alex
И при чем тут ансибл?
Вчера говорили об этом, я обещал скинуть. Я скинул.
Timur
Думаю, лучше в девопс чатик
Артём
Предложенный выше вариант подходит?
Мне на SO предложили вариант, который для моего понимания чуть проще: vars: repos: - name: repo1 os_list: - centos - rhel major_distribution_list: - 6 - 7 - 8 archs: - noarch - x86_64 tasks: - include_tasks: repo-paths.yml loop: "{{ repos }}" loop_control: loop_var: repo ... # cat repo-paths.yml - debug: msg="./{{ item.0 }}/{{ item.1 }}/{{ item.2 }}/{{ item.3 }}" with_nested: - "{{ repo.os_list }}" - "{{ repo.major_distribution_list }}" - "{{ repo.name }}" - "{{ repo.archs }}" Ваш тоже делает работу, но осознать его мне сложнее. В любом случае, спасибо
Timur
with_nested в современном варианте ансибла меняется на loop в сочетании с product-фильтром просто
Timur
Я сделал вариант для более современного синтаксиса
Max
Я попробую, как доберусь до консоли, и отпишу. Распарсить глазами не получается, выглядит немного сложнее, чем воображаемый with_subelements: - «{{ repositories_list }}» - os_list - major_distribution_list - archs Спасибо.
имхо пользуйся идеей руппировки мета папки роли: meta/main.yml по-моему, она как раз собирает эти данные. а вообще, если честно, попахивает тем, что ты делаешь "умную" роль.
Артём
Плейбук делаю. Директорий наделать, репы в них создать, локейшн и acl’ки для nginx, rsyncd настроить, такого плана. Неподходящий инструмент беру?
Viktor
Всем привет, впервые пишу модуль для ансибла. На вход ему надо дать stdout, а он отдает стринги, кол-во которых зависит от поданного стдоут. На питоне все работает, осталось прикрепить к ансиблу. Может есть у кого скретч чего-то подобного из обертки AnsibleModul.
Viktor
Рекомендую начать с этого: https://docs.ansible.com/ansible/latest/dev_guide/developing_modules.html
Это обязательно прочту, только мне нужно тестово запустить, а то сроки как всегда
Timur
Viktor
😂
Sergey
Это обязательно прочту, только мне нужно тестово запустить, а то сроки как всегда
лучше потрать время и почитай чтение документации вообще почти всегда экономит время
Max
При чем тут мета?
там лежит список версий осей, и т.д. как пример организации таких данных
Max
а вообще такие дела с т.з. дебажки наверное хардкодом будет легче жить. (не рабочий урл x/y/z в yaml будет выглядеть: data: x: - y: - z вместо: data: - x/y/z