inqfen
Может уже в 3 версии, выпилить во 2 - слишком сильное ломающее изменение
Anonymous
Я почему так спорю - повелся с полгода год назад на Тимиура, переписал на loop. А там многое стало не так как ожидаемо.
Anonymous
Проблема эта loop - нет. Проблема это того кто переписал - да
Anonymous
with_x это плагин, loop внутри "обработки тасков", поэтому возможен loop_control
Anonymous
это корявое описание
Anonymous
но как смог
inqfen
Я почему так спорю - повелся с полгода год назад на Тимиура, переписал на loop. А там многое стало не так как ожидаемо.
Ну, loop это не with v2, у нее другой синтаксис таки, поэтому перекатать 1 в 1 может и не выйти
Timur
Сейчас у них политика поменялась в отношении лупов
Anonymous
Ну точно не вышло. Писать на него можно только с нуля имхо
Anonymous
И только если много времени и желания
Anonymous
Не юзая старые роли
Timur
Они говорят, что если получается лаконичнее с with_ - то можно его юзать. Если удобнее loop - то его
Timur
ммм, подробней можно?
We have not deprecated the use of with_<lookup> - that syntax will still be valid for the foreseeable future.
inqfen
Они говорят, что если получается лаконичнее с with_ - то можно его юзать. Если удобнее loop - то его
Потому что loop еще дописывают и в итоге монструозная логика с loop может в условном 2.13 превратиться в куда более легкую, а ты уже намучался
Anonymous
ну, не отказываются и здорово
Timur
• Any with_* statement that requires using lookup within a loop should not be converted to use the loop keyword. For example, instead of doing: loop: "{{ lookup('fileglob', '*.txt', wantlist=True) }}" it’s cleaner to keep: with_fileglob: '*.txt'
inqfen
Но вообще прекрасное далеко - это loop
Anonymous
Пока оно дойдёт. Политика партии может раз много измениться
Timur
Но вообще прекрасное далеко - это loop
Это да. Но форсить переход на loop они перестали. На уровне ansible-lint как минимум
Anonymous
Это да. Но форсить переход на loop они перестали. На уровне ansible-lint как минимум
у них и так проблем хватает. без этих мелочей... так то коллекции и все дела
Timur
На loop в целом код получается более единообразным и предсказуемым. Но иногда более длинным и хуже читаемым
Anonymous
читабельность loop такое себе
Anonymous
в общем и целом loop рулит
Anonymous
Хорошая сегодня среда - спор хороший и никто не переругался
Anonymous
@deniswork4951 крути loop и живи свободно! Как-то так
Anonymous
Я когда хочу советов - их спрашиваю у компетентных людей. Но месседж услышал
Jungo
Должно выглядеть вот так: with_dict: "{{ burp_client_custom_plan | default({}) }}" И покажите словарь с "1 значением"
сделал спасибо! вроде бы работает правда для default скорее всего только 1 значение в словаре воспримет
Lamobot
Если там словарь, то он пройдется по всем ключам
Jungo
Почему он его не должен воспринимать?
днем было - или with dict жаловался - не помню точно но точно было когда было два значения было норм , а как только уменьшил до 1 написал что ты мне даешь лист вместо дикта я только сегодня узнал вообще что это такое луп и дикт
Lamobot
Если такой переменной нет, то выдаст default пустой список
Lamobot
А если у тебя там не словарь - естественно ошибка вылезет
Lamobot
вот что у меня там
В таком виде не работает?
Jungo
В таком виде не работает?
работает - сейчас буду тестировать усиленно разные варианты вообще я хотел сделать только один план бкапов но когда я в роли его описал и начал делать для хоста дополнительные то они затираются а не объединяются пришлось сделать кастом и дефолт дефолт для системного бэкапа а кастом для всего пользовательского
Sergey
Sergey
но - по вкусу :-D
Jungo
Обрекаешь себя на боль и унижение
это да, тогда может лучше оставить как есть, клепать какаху и в продакшн)
Jungo
Не очень понятно из описания, как всё устроено. Можно словари комбинировать через фильтр combine. Или разделить роль на две
пока думаю как сделать так чтобы в mysql конфиге были раскомментированы строчки к конфигу а в других были закомментированы пока он везде включает
Jungo
может через when передать какой то триггер в jinja
Jungo
в темплейте можно создать условие но оно будет при каждой итерации loop проверяться по идее
Lamobot
Выглядит костыльно. Нет никаких проблем сделать пяток схожих ролей, чтобы избавиться от неочевидных условий и костылей.
Lamobot
Потом появится ещё какая-то база для бекапа, и ещё добавится условий: )
Alex
TASK [itests/jfxr : Copy create user script] *** fatal: [app_master -> 34.xxx.xxx.xxx]: FAILED! => changed=false checksum: ca04d3c0b2db20a69910db8b2dc20337fd4394ac expected_checksum: 1cb94d82e3aa8a30b7f2544642e337d0293c6f6a msg: Copied file does not match the expected checksum. Transfer failed. ...ignoring а из-за чего могут возникать подобные ошибки? Какие то проблемы с сетью?
Anton
Ребят привет. Такой вопрос, в хостс файле список серваков, как закоменировать те которые временно ненужны? Решетка сработает?
Sergey
есть ли смысл добавлять retry?
Есть смысл разбираться. У Миловидова есть замечательная статья на тему единичных сбоев, там что-то находили по физике.
Alex
Есть смысл разбираться. У Миловидова есть замечательная статья на тему единичных сбоев, там что-то находили по физике.
это динамические окружения на AWS/GCP. В чем там разбираться? И ошибка очень редкая
Sergey
А, облако...... Тогда страдать и ретраить.
Anton
Ола, коллегас! Подскажите советом / примером - никак не могу понять, как сделать проще такую штуку: 1 -- есть куча мелких последовательных тасков 2 -- есть отдельная роль telegram, где я делаю отправку уведомлений в телегу, дескать, стартанул вот этот таскан, закончился успешно другой таск Например, куча тасков на отправку сообщения в телегу - https://pastebin.com/JAmRA7Gu Сама роль телеги состоит из одного таска - https://pastebin.com/11HWdNP4 Вопрос - как нормально сделать уведомления? Конструкция такая кажется костылем:\ include_role: name: telegram vars: message: "Maintenance mode in Zabbix is created." Можно как то сделать проще?
Anton
в общем виде могу сформулировать так: хочется иметь возможность в любом месте какой либо роли отправить уведомление в телегу, передавая как параметр текст сейчас это выглядит как include роли и передача vars:message это норм или как то проще можно?
Anton
Тогда засунь это всё в action plugin, и будет тебе счастье и удобство.
Спасибо! Тоже склоняюсь к этому решению. Навскидку других путей нет?
[IPT] Dmitry
ребят, хочу конфиги рендерить из словарей в переменных но при этом и всякие for i in list jinja использовать. что-то типа того: cat config.yml.j2 {{ blackbox_exporter_conf | to_nice_yaml(indent=2) }} cat group.yml blackbox_exporter_conf: modules: {% for domain_zone in pdns_domain_zones %} {{ domain_zone }}: prober: dns dns: query_name: "{{ domain_zone }}" query_type: "A" validate_answer_rrs: fail_if_not_matches_regexp: - "{{ domain_zone }}.\t.*\tIN\tA\t.*" {% endfor %} как быть?
[IPT] Dmitry
повод попиариться? 😁
[IPT] Dmitry
Ну как-как... 1. Унести в пастебин. 2. Посмотреть мой доклад :-)
а чё тут в пастбин то нести? это же не портянка
Sergey
повод попиариться? 😁
Фу так думать (кому нужно - меня и так знают). Вообщет там прямо рассказываю про джинджу, и о том, как собрать страшное в переменных.
Sergey
Оригинально твоя штука работать не будет, т.к. у тебя подстановка в ключе. Это так не едет, потому что сначала YaML грузится, а только потом шаблонизатор проходит.
[IPT] Dmitry
Оригинально твоя штука работать не будет, т.к. у тебя подстановка в ключе. Это так не едет, потому что сначала YaML грузится, а только потом шаблонизатор проходит.
Ну я так примерно и понял, что красиво и просто тут не выйдет, что надо сначала как то шаблонизатором пререндерить или типа того
Sergey
Это была шутка
Значит, я в танке и не врубился в смайлик :-)))) что поделать - рабочее время, модуль эмоций отключен.
[IPT] Dmitry
Где доклад-то можно посмотреть и что в двух словах мне делать?
George
Ещё по наболевшему в Ансибле. https://habr.com/en/post/508762/. Критика приветствуется.
Sergey
Где доклад-то можно посмотреть и что в двух словах мне делать?
Доклад: https://t.me/pro_ansible/149716 Что делать - фигачить в джиндже.
Jungo
теперь вообще каша в голове когда все прочитал по манам(