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

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


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


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

18 ответов

20 просмотров

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

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

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

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

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
2
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Ребят, а двух-факторку для плагина Users и для бэкенда октября кто-то прикручивал? Поделитесь опытом
Constantine Anikin
4
Карта сайта