Ладно, настало время дурацких вопросов 🙂 В ansible 2.3 в плейбуке

работала такая конструкция:


- include_role:
name: firewalld/{{ firewalld_role_version }}
when: firewalld_use is defined


После перехода на 2.10 оно перестало работать, но кусками. Например - если прогонять весь плейбук без тегов - то оно применяется. Если указать теги этой подключемой роли - то он её как будто не видит и игнорит всю роль. На что надо поменять что бы оно в 2.10 работало так же как и в 2.3?

18 ответов

4 просмотра

Выкиньте теги нахер просто

Elina-Linko Автор вопроса
Timur Gadiev
Выкиньте теги нахер просто

Мы очень часто пользуемся тегами, это удобно

Elina-Linko Автор вопроса
Timur Gadiev
Нетъ

У нас своя специфика )

Elina Linko
У нас своя специфика )

Тогда страдайте дальше

Elina Linko
Мы очень часто пользуемся тегами, это удобно

Тогда вас ждёт прекрасное будущее: 1) через 2-3 поколения админов уже никто не будет знать что произойдет если запустить плейбук без тегов 2) какая нибудь обезьяна во время отпуска тимлида запустит плейбук без тегов и все пойдет по пизде

Elina-Linko Автор вопроса
Отделение Bereke Bank Ор
Тогда вас ждёт прекрасное будущее: 1) через 2-3 по...

У нас всё поставлено так, что запуск плейбука без тегов ничего не ломает. Всё периодически проверяем и перераскатываем как раз что бы избежать таких ситуаций.

Elina-Linko Автор вопроса
Отделение Bereke Bank Ор
Это пока 😏

Будет рыба - будем жарить )

Отделение Bereke Bank Ор
Тогда вас ждёт прекрасное будущее: 1) через 2-3 по...

Даже не в этом проблема, а в том, что трудно масштабировать наследование тегов при большом уровне вложенности. Рано или поздно возникнет ситуация (как в случае выше), что вам, например, нужно сделать include нужного участка кода, а теги при этом не унаследуются. Или унаследуются не все. Или не так. Или нужно будет сделать теги разного приоритета, а не получится. И т.п.

Отделение Bereke Bank Ор
Тогда вас ждёт прекрасное будущее: 1) через 2-3 по...

1) Для того чтобы работало всё внутри без тэгов есть тэг all который прописывается в том случае если начинаем использовать тэги в плэе и не хотим иметь геморой. + Есть документация, в которой обязано быть это всё описано, так же как и в самом начале плэйбука. 2) Я не тимлид (хотя... хз) Но есть пункт 1 в котором я описал всё. Если нет документации и описания. Или всё что там внутри реализовано не очевидно — завернуть в окружение типа jenkins через которое будут только переключатели типа ВКЛ/ВЫКЛ и кнопка "уничтожить америку". По крайней мере тэги собираюсь использовать только в "наружном" плэйбуке, который будет вызываться дженкинсом и внутри ролей естественно никаких завязок на тэги не будет

Anton Sergievich
1) Для того чтобы работало всё внутри без тэгов ес...

Так зачем именно теги, если можно просто обычные параметры использовать, которым легко задать дефолтные значения, а потом оверрайдить на любом уровне?

Anton Sergievich
1) Для того чтобы работало всё внутри без тэгов ес...

Делаешь playbook/main.yml - import_playbook: aaa.yml - import_playbook: bbb.yml - import_playbook: ccc.yml Если не надо запускать main.yml - запускаешь нужный и не превращаешь IaC в infrastructure as a bash (pipeline) history

Anton Sergievich
1) Для того чтобы работало всё внутри без тэгов ес...

По сути вы экономите 15 минут работы ценой ухудшения читабельности работоспособности и поддерживаемости кода

Elenhil
По сути вы экономите 15 минут работы ценой ухудшен...

Объясните в чём будет ухудшение читаемости плэйбука? Фактом плэйбук будет состоять только из последовательного использования ролей. Тэги если они не заданы в вызове обозначены как all, если я из всех перечисленных в пэйбуке ролей с прикрепленными к ним тэгами перечислил только определенные, у меня эти определенные + те которые always отработают. При использовании переменных зависимостью от которых запускать или не запускать можно нарваться на переопределение значения переменной из другой роли или вызываемого плэя. В то время как использование тэга или в принципе включает в конечно сформированный из "исходников" список задач плэя, или не включает его. С тем же успехом, давайте у ножниц удалим кольца в которые продеваем пальцы для удобства. И будем говорить что пальцев на руках и их гибкости достаточно для того чтобы пользоваться такими ножницами.

Anton Sergievich
1) Для того чтобы работало всё внутри без тэгов ес...

Почти, только always. Плюс "деструктивные" теги полезно дополнять тегом "never" - тогда они будут запущены только при явном указании.

Anton Sergievich
Объясните в чём будет ухудшение читаемости плэйбук...

Смотрите. В нулевых вы уже столько же времени на спор потратили, сколько бы потратили на инклуды или when) Во-первых, осознать что там у вас внутри ролей, как оно вот прям точно будет вызываться, где какие теги будут дергаться а какие нет - это не на пять минут задача. Когда все задаешь явно это читать на порядок проще

Похожие вопросы

Обсуждают сегодня

Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
t.me/<username> и tg://user?id=<id> отваливаются по понятным причинам
Denis 🐍|👑 | darling! 🥰
7
Вы когда из вики.... копировали, не обратили внимание на года(ы)? 😉 ==== если до 1917 года в Москве было около 15 000 легковых извозчиков, то к 1920 году их осталось 5 000, а ...
Igor Mitin
4
коллеги привет. уже второй день бьемся об заклад с одной ошибкой, может вы сталкивались с таки странным поведением? есть тестовый сервер, на который паблишим релизную версию W...
Magzhan
11
На счёт замены разрабов нейронами: Вряд-ли заказчик сможет нормально пояснить нейросети, чё он хочет. Они то человеку нормально пояснить не могут, не то что нейросети. Так что...
Alex Kom
1
Что я могу сказать? Погуглите получше - чтобы узнать: 1. Что будет стоить содержание машины 2. Что будет стоить содержании лошади. P.S. Моя мысль о том, повторюсь еще раз,...
Igor Mitin
1
Слушайте, а при создании навигации на Tailor рили нельзя определять активный пункт навигации, как в Static Pages?
Pavel Lautsevich
11
Господа, а как такое в миграцию засунуть?
Денис Александрович
12
Карта сайта