Sergey
Αλέχ
Только если названия хостов подпадают под паттерны. А если нет, то остаётся оперировать только на уровне названий групп, что очень удобно, когда в хостс файле более сотни хостов.
Но если у вас весь хостс на 10 строк, то да
Sergey
Sergey
hosts: allkubes1:!kubeslaves:&kubemasters
Αλέχ
Так в чем конкретно странность? В простом и понятном использовании переменной, доступной в ансибле? Или потому что в доке об этом ни слова?
Timur
Sergey
Артём
А можете на более техническом уровне, нежели «странно», распедалить?
Что там есть настоящего? Например, в случае when: ansible.inventory_hostname in groups будет выполнено по лишней пачке команд на каждый хост в плейбуке. В отличие от «лишней группы», когда оно выполнится ровно столько раз, сколько нужно, и ни одного больше.
Timur
Timur
В любом случае ничего хорошего
Артём
«Если на уровень роли - то получается хардкод, делающий невозможным исполнение роли на произвольном окружении с другим набором групп»
Если у вопрошающего шансов на переиспользование - ноль целых, а оверхед на создание группы и последующую пляску с наследованием переменных от нуля отличен, имеет право на существование?
Timur
Pit
Timur
Просто говнокодом от этого он быть не перестаёт, а поддержка такого кода не становится легче
Timur
И если есть возможность его избежать - лучше избегать
Timur
Кстати, оверхедов на создание групп нет никаких
Timur
Это просто теги
Артём
Я про ручное развешивание всего в инвентори.
Timur
Только бессмысленно по нему задавать вопросы :-)
Такие вопросы - это маркер недостаточной глубины понимания проблемы. Если есть понимание объективной необхоимости говнокода, подобных вопросов не возникает обычно. Если же возникает вопрос «как мне написать говнокод», то как правило это означает просто недостаточный уровень владения предметом, а задачу можно решить более правильным способом
Артём
Просто не первый раз картина, приходит человек, спрашивает, как правильно подпереть тут веточкой, ему сразу говорят, что он делает херню, и он грустный уходит.
Он не получает понимания, почему то, что он делает, херня. Не получает понимания, как правильно и, главное, почему правильно именно так.
Возникает ощущение, что попал в снобарий, хлебнул говна и ушёл вон.
Timur
Просто не первый раз картина, приходит человек, спрашивает, как правильно подпереть тут веточкой, ему сразу говорят, что он делает херню, и он грустный уходит.
Он не получает понимания, почему то, что он делает, херня. Не получает понимания, как правильно и, главное, почему правильно именно так.
Возникает ощущение, что попал в снобарий, хлебнул говна и ушёл вон.
Тут говорят как сделать правильно
Timur
Выше просто детально разжевали уже в ...надцатый раз
Timur
И почему так правильно - тоже объяснили
Timur
Артём
Там где-то далеко наверху - да. Но человек же приходит и задаёт вопрос, а не начинает читать всю историю. Может, копипасту заготовить, или теги расставить.
Timur
Bandikoot
На сколько микросекунд?
it depends. довелось видеть достаточно кудрявые инвентори и напряжённо разбираться, куда именно что катится плейбуком. слишком много групп — тоже такое себе
Bandikoot
но там и хостов было, конечно, овердофига, под 2к
Артём
Timur
greydjin
кто-то пользуется ансибл ролью публичной, для разворачивания постгре мастер-слейв?
greydjin
может в галакси что покажите или статью где описана роль. хочу роль с отзывом. пока нашел такое
https://opensourceforu.com/2019/02/devops-series-configuring-a-postgresql-master-slave-setup-using-ansible/
George
Max
🤣🤣🤣
Max
какой ужас. аж сердце закололо. счас инфаркт получу.
Alexander
Говорят лохматые бабушки просто в тренде ;)
Alexander
Зато Ансибл на аве :)
Alexander
Тут разговор не про мнения, тут разговор про сущности заложенные создателями
Alexander
Сделать можно по-разному, как и относиться к этому
Αλέχ
Ну тогда какой смысл дискутировать на тему, что заложенная сущность - это единственно верное решение? Решение “как использовать” принимают люди, исходя из оценки задач и нужд
Αλέχ
С обществом можно поделиться методами и приемами, потому что они реально могут пригодится,… а не орать про #странность
Timur
George
George
Я хотя бы этим могу оправдать. Условно, есть какие-то роли, которые разрабатывает отдельный человек. Или команда. И есть человек, который их интегрирует. Или предлагаете плейбуками интегрироваться ?
Timur
Timur
Роли введены как сущность, облегчающая параметризацию и переносимость кода между различными окружениями
George
А если мы ходим его версионировать и, условно, инклюдит в централизованный репо с плейбуками ?
George
Это скорее идеи, а не предложение реализации )
Max
Αλέχ
Написанное выше:
> Внезапно бывают еще и узконаправленные, в рамках некой архитектуры
Предполагается, что плейбуки/роли никогда не будут выноситься за рамки данной архитектуры
Timur
Timur
Шоб було?
George
кого его?
То что разраб наговнякал - плейбук или роль
Timur
Max
самое главное в ролях под версиями - что можно обновлять роль, не сломав старый плейбук. имхо.
George
George
т.к. роли - версионируются. плейбуки - вроде как нет. Можно самому через гит их подтягивать или субмодули... но выглядит как костыль
Timur
Max
Max
я кладу их параллельно с requirements.$pb.yml
Max
перед запуском дергаю ansible-galaxy и устанавливаю роли нужных версий.
Max
раввин Молекулевич не сопротивляется
Αλέχ
Роли нужны для специфичного софта/сервисов/бутстрапов, коих может быть несколько десятков. Описывать все в одном плейбуке с вариативностью по хостам и группам - это имхо, очень тупо. В таком случае плейбук содержит только хост/группу и набор ролей, а в ролях частично используется логика “применять некий таск или пропускать” в зависимости от хоста
Timur
Timur
Timur
Все инструменты структурирования кода доступны в плейбуках также, как и в ролях