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

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

25 ответов

16 просмотров

Для обработки ошибок в таске есть 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...

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

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

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

Как думаете через какой сервис они верифицируют?
inc.
5
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
На чём в основном щас пишут мини апы? Vuejs?
Goot evening Not everyone
6
Вопрос: Здравствуйте! У меня возникла проблема с использованием плагина Mall в OctoberCMS. Я использую все файлы и компоненты в их исходном виде, без изменений. Однако на стр...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
8
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
9
🙋 Ребята, всем привет. Поправил задачу: Нужно каждому новому сообщению (1 раз по каждому юзеру) в чате прибавлять снизу кнопку с предложением подписаться на канал. Как добавит...
Alexander
1
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
всем привет помогите пожалуйста используя CDN (GCP) у игроков из вьетнама загружается конфиг (размер 999 bytes) загружается 5 и более минут н а других CDN сервисах такой пробл...
Andrew Krw.
1
Карта сайта