Коллеги. Снова архитектурный треш. Допустим, что результатом выполнения таски может

быть известная ошибка, которую в принципе реально обработать и применить другое флоу. Стоит ли на ансибл делать подобное ветвление и писать свой обработчик ошибок? Или лучше написать скрипт на питоне в таком случае?

25 ответов

19 просмотров

Для обработки ошибок в таске есть failed_when например

Mikhail-Khoroshev Автор вопроса
Timur Gadiev
Для обработки ошибок в таске есть failed_when напр...

Да я не про это. Я про "программирование" на ансибл)

Mikhail-Khoroshev Автор вопроса
Timur Gadiev
Что именно имеется в виду?

Вот это - 1. флоу - ошибка - YES -> 2. флоу / NO -> 3. флоу.

Mikhail Khoroshev
Вот это - 1. флоу - ошибка - YES -> 2. флоу / NO -...

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

Mikhail-Khoroshev Автор вопроса
dslimp
самое правильное предыдущими тасками - приводить в...

Это понятно. Тут нестандартный кейс, таской запускается приклад на java, который может упасть с определенной ошибкой. В этом случае надо применить другой набор таск.

Mikhail Khoroshev
Это понятно. Тут нестандартный кейс, таской запуск...

ну регистрировать вывод, ignore erros true, и обрабатывать. это все равно лучше, чем на питоне писать, почему нет то

Mikhail-Khoroshev Автор вопроса
dslimp
ну регистрировать вывод, ignore erros true, и обра...

В best practice считается дурным тоном "программирование" на ансибл, а тут как раз тот случай.

Mikhail Khoroshev
В best practice считается дурным тоном "программир...

не вижу программирования в использовании when )

dslimp
не вижу программирования в использовании when )

Вообще-то уже условный оператор напрашивается 😏

Mikhail Khoroshev
Это понятно. Тут нестандартный кейс, таской запуск...

вот насчет другого флоу - а нельзя ли этот флоу провести до запуска java приложения? чттобы оно запустилось?

Mikhail-Khoroshev Автор вопроса
Mikhail-Khoroshev Автор вопроса
dslimp
пиздить такого вендора)))

Я пытаюсь, но ска сопротивляется))

Mikhail Khoroshev
Я пытаюсь, но ска сопротивляется))

короч я не буду говорить правильно или нет, но у нас много чего написано на ansible, и кондишены активно юзаем, и разветление. как в конце концов писать роли под разные os то?

Mikhail-Khoroshev Автор вопроса
dslimp
короч я не буду говорить правильно или нет, но у н...

Логика понятна. Попробую реализовать попроще.

Timur Gadiev
Только не ignore_errors, а failed_when лучше

с чего бы эт?) плейбук должен продолжиться, если вылетела ошибка. конечно можно failed_when: false, но это по извратски выглядит мне кажется)

dslimp
с чего бы эт?) плейбук должен продолжиться, если в...

Не false, а с конкретными условиями по кодам возврата как раз. Отлично подходит для хендлинга всяких third-party приложений, вызываемых из ансибла, и возвращающих стандартно ненулевые коды возврата.

Timur Gadiev
Не false, а с конкретными условиями по кодам возвр...

ну смотри, ну отдал код 100 ошибку. в этом случае тебе надо вызвать таски из 100.yml. или выдаал 200 ошибку, в этом случае тебе надо 200.yml вызвать. как failed when поможет?

dslimp
ну смотри, ну отдал код 100 ошибку. в этом случае ...

В этом - никак. Это делается в другом таске на основе register. failed_when поможет более корректно сформулировать условие ошибки - что является фейлом, а что - не.

Timur Gadiev
В этом - никак. Это делается в другом таске на осн...

вообще такой сценарий - говнина) поэтому работаем с тем, что есть))

dslimp
вообще такой сценарий - говнина) поэтому работаем ...

В идеале под такой кейс отдельный модуль пишется, а то и коллекция. Но это уже более трудозатратная вещь обычно

Есть модуль block https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_blocks.html прямо для этого случая. Стоит ли его использовать в конкретном случае, интересный вопрос.

Mikhail-Khoroshev Автор вопроса
Mikhail
Есть модуль block https://docs.ansible.com/ansible...

Я так сейчас и сделал. Посмотрим, можно ли с этим жить.

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

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

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