Lamobot
вот такие задачи нужно паралельно запускать, ибо их выполнение не зависит друг от друга
Разбить их на отдельные плейбуки и запускать в параллель. Это не ансибла задача :)
tutunak
осталось донести руководству)
а что доносить, херач правильно, ну либо зарабатывай авторитет, если руководство не вменяемо то меняй работу. Ну как то странно что руководитель принимает решение о том писать ли роли нормально или городить хрень
Дмитрий
в твоем примере именно так - несколько хостов, а тебе надо на одном хосте паралелить таски? это черевато болью
да у меня разные хосты, есть так же есть куча тасков на одном хосте. Разные варианты. Вот и хочется узнать что можно распаралелить а что нет.
Отделение Bereke Bank
galaxy у всех 503 выдает?)
tutunak
galaxy у всех 503 выдает?)
в гуе, Error! Query user failed: (Http failure response for https://galaxy.ansible.com/api/v1/content_blocks/: 503 OK) Error! get api root user failed: (Http failure response for https://galaxy.ansible.com/api/: 503 OK)
tutunak
совету не юзать галакси как сорс для себя в dependencies. лучше брать с гита, а еще лучше - зеркалирование к себе в гит
Elenhil
да
Elenhil
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html
Aleksey
опять редхат всё сломал
Ivan
ку! у меня есть плей, в котором две роли. на ansible 2.7 одна роль имела доступ к defaults/main.yml переменным другой роли, а на 2.9 уже не прокатывает такое с чем это может быть связано?
Elenhil
в смысле если вы указали тег - меняется переменная?
Elenhil
это очень плохая идея
Lamobot
На тёмную сторону силы захотел? :) set_fact в зависимости от тэга...
Elenhil
зачем три раза делать таск?
Elenhil
если оно в рамках роли - пизните в хэндлеры. Если в рамках плейбука - отдельным таском\ролью
Ivan
Оо Нахрена вам сиотреть дефолты другой роли?
есть роль сервиса, а есть роль goss. в роли goss темплейтится файл с переменным сервиса обе роли в одном плей, этот плейбук уже импортится дальше
Отделение Bereke Bank
Окей а тег почему меняется?)
Lamobot
Красиво - разделить инвентарь в три группы со своими варсами и запускать на три группы. И тэги забыть
Elenhil
а не в другой роли
Elenhil
зачем его менять в зависимости от тега?
Elenhil
copy в var
Elenhil
var в групварз
Elenhil
пускается на стейдже - кладется в одно место, на проде - в другое итп
Lamobot
Динамический инвентарь :)
Lamobot
Ещё, как вариант, попробовать сделать группы через group_by/add_host по тэгу
Ivan
значит эти переменные должны быть в group_vars
что надо переделывать ясно, вопрос почему поведение разное имено между 2.7 и 2.9
Elenhil
тэги то вам зачем?
Отделение Bereke Bank
Надо определить
Отделение Bereke Bank
Теги вообще зло
Отделение Bereke Bank
Надеюсь когда нибудь их выпилят нафиг
Отделение Bereke Bank
Elenhil
ну определите
Lamobot
Просто это выглядит как "Я тут ложкой хочу поесть какахи, но чёт невкусно! Как сделать вкуснее?" Тебе предлагают варенье мёд итд, А ты всё равно "Нет, давайте мне какахи вкуснее сделайте!" :))))
Lamobot
Ну нет пока tag_vars, и скорее всего никогда не будет. А group_vars - есть :)
Elenhil
1) это через жопу 2) мы можете в какой-то момент забыть поставить тег 3) существуют group_vars, решающие вашу задачу на 100%
Aleksandr
откройте мануалы и посмотрите best practice от вендора
Elenhil
это невозможно
Aleksandr
по инвентори и тд
Elenhil
вы пихаете хост в инвентори внутрь группы
Elenhil
с того бы, что хостов без группы не существует
Aleksandr
если вас не устраивает решение вендора - сходите в папет/салт)
Elenhil
нет
Elenhil
они в группе all
Elenhil
или как там она, ungrouped?
Lamobot
https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html Ок. Хочешь тэги - есть переменная ansible_run_tags, делай через неё include_vars
Elenhil
то есть вы предполагаете, что "по какой-то причине пихнул хост не в группу а вне группы" - более вероятное событие чем "запустил плей с неверными тегами"?)
Elenhil
вы повышаете риски на порядок
Отделение Bereke Bank
у темплейт в src у тебя переменная. так? src "{{ my_shit_var }}". Вот эту my_shit_var с нужным значением кладешь в group_vars
Отделение Bereke Bank
и my_shit_var не должна быть в vars роли. vars роли выше по приоритету чем переменные инвентори
tutunak
Никто тебя не может остановить )
Отделение Bereke Bank
- name: Include my shit vars include_vars: "{{ item }}.yml" when: item in group_names loop: - copy1 - copy2
Отделение Bereke Bank
Не уверен что синтаксис when правильный. пробуй) в vars должны лежать copy1.yml copy2.yml
Elenhil
но зачем
Elenhil
Elenhil
"я не хочу использовать инструмент для забивания гвоздей, дайте мне твердый микроскоп"
Elenhil
Вам уже давно сказали - суньте хост в группу а вары - в групварс
Elenhil
и всё
Отделение Bereke Bank
очевидно мы не знаем всей картины)
Elenhil
ужас, это ведь так тяжело
Elenhil
суешь в инвентори в нужную группу
Elenhil
это называется group_vars...
Отделение Bereke Bank
но ты же переизобретаешь group vars
Отделение Bereke Bank
Elenhil
group_vars
Elenhil
Elenhil
шта
Отделение Bereke Bank
Elenhil
это именно то для чего нужен игвентори
Elenhil
И?
Elenhil
и они в инвентори, вуаля!
Sergey
У роли нет поддержки переменных для групп, и это не просто так, от балды.
Sergey
Роль не должна ничего знать о группах, т.к. она вызывается из плея. И именно плей декларативно устанавливает связь между тасками/ролями и группами/хостами.
Sergey
Потому что это пишется в плее, Карл! - hosts: такая_группа roles: - role: странное
Sergey
Cкладываешь переменные в inventory - и молодец жи.
Elenhil
а нах? Если есть group_vars