Почему в Ansible так тяжело разруливать отказы, и как я написал Flow Designer для VS Code

Habr ·

Почему в Ansible так тяжело разруливать отказы, и как я написал Flow Designer для VS Code

Пока в Ansible всё идёт по плану, плейбуки пишутся легко. Сложности начинаются на десятках реальных устройств, когда на каждом шаге часть хостов отваливается: из 60 коммутаторов два не прошли предпроверку по памяти, один завис при перезагрузке по SSH ( unreachable ), ещё три выдали ошибку при заливке прошивки — их нужно срочно откатить к бэкапу и отправить тикет в NOC, а остальные 54 должны спокойно дойти до конца. Если пытаться обработать все эти ситуации средствами самого Ansible, плейбук быстро разрастается. Появляются вложенные block / rescue , group_by , дополнительные переменные через set_fact и условия when . В какой‑то момент становится сложнее разобраться в обработке ошибок, чем в самих задачах. Мне надоело собирать эту обвязку вручную, и я написал Ansible Flow Designer — опенсорсное расширение для VS Code. С помощью расширения можно собрать схему выполнения плейбука, настроить обработку ошибок для отдельных групп хостов и проверить результат во встроенном симуляторе. На выходе получается обычный Ansible‑код, который можно запускать через CLI, CI/CD или AWX. Под катом — как устроена модель потоков, как кодогенератор обходит ограничения ядра Ansible и как тестировать аварийные сценарии без боевого стенда. Читать далее

Источник: Habr