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

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


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


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

18 ответов

21 просмотр

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

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) Во-первых, осознать что там у вас внутри ролей, как оно вот прям точно будет вызываться, где какие теги будут дергаться а какие нет - это не на пять минут задача. Когда все задаешь явно это читать на порядок проще

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

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

Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта