Comments 8
Хорошей альтернативой AWX может выступить https://semaphoreui.com
К тому же он поддерживает инструменты IaC terraform (opentofu) и требует меньше ресурсов для развертывания.
Когда (пару лет назад) прорабатывали возможность переезда с awx на semaphore то одним из существенных препятствий, явилось отсутствие в семафоре потока управления процессами (workflow) - там где в awx можно в вэб-морде натыкать из разных сценариев работающий процесс, с ветвлением, условиями и т.п., в семафоре все приходилось делать в рамках одного сценария (плейбука) связывающего другие. Т.е. все процессы пришлось описывать в yaml (как если-бы это все запускалось просто при помощи ansible-playbook, точнее оно и запускалось). В остальном семафор очень даже хорош.
Я бы еще добавил rundeck, кмк более гибкий инструмент чем semaphore:
https://rundeck.com
автор (Михаэль Дехан/Michael DeHaan), кстати, пытался дважды переписать ansible: сначала проект opsmop https://github.com/opsmop/opsmop, потом jetporche https://github.com/jetporch/jetporch
но оба проекта забросил (а на jetporche были надежды, интересно как бы быстро работал ansible на rust'е)
интересно как бы быстро работал ansible на rust'е)
Можете собрать и потестить. Рабочий вариант уже есть. Большая часть автоматизации никакой особой скорости не требует. Благо, не 3D-моделирование автоматизируют обычно. Скорость сценариев автоматизации обычно упирается в скорость API сервисов, с которыми взаимодействует тот же Ansible, скорости ввода-вывода, файловые операции, задержки на сетевой обмен и т.п. Все это никак не решается растом.
да возможно дойду как-нибудь, жалко что проект загнулся, вокруг ansible уж слишком большая инфра образовалась -- с наскока такое не перепишешь (да и не нужно, для инстурмента автоматизации: гибкость > скорость)
насчет скорости да, но даже несмотря на это разница в скорости будет существенная: я в качестве PoC переписывал модуль для ansible на Rust (slurp, который просто читает содержимое файла и кодирует в base64), вот ссыль https://debops.ru/ru/posts/crates_ansible_module/
tldr:
- для маленького файла модуль на питоне 0.21s, на расте 0.03s
- для большого файла модуль на питоне 23.41s, на расте 16.87s (тк питон дергает Сишную библиотеку)
все равно очень много времени утекает на ssh, выполнение модуля и т.д
плюсом в ansible нет тру многопоточности (привет GIL)
на удивление годная статья, без всякого этого самого.
Развитие Ansible: от фантастического устройства до зрелой экосистемы управления ИТ-инфраструктурой