Состоялся выпуск Polemarch 3.0.0, web-интерфейса для управления серверной инфраструктурой на базе Ansible. Код проекта написан на языках Python и JavaScript с использованием фреймворков Django и Celery. Проект распространяется под лицензией AGPLv3. Для запуска системы достаточно установить пакет и запустить 1 сервис. Для промышленного применения рекомендуется дополнительно использовать MySQL/PostgreSQL и Redis/RabbitMQ+Redis (кэш и брокер MQ). Для каждой версии формируется образ Docker.
Основные изменения:
Основные изменения:
- Переход на новую версию Rest API v4 и минимально поддерживаемую версию Python 3.8. Переход был необходим для улучшения поддержки новой системы плагинов и расширений, а также для ускорения разработки. Также были упрощены некоторые дублирующие элементы, для более логичного и интуитивно понятного управления шаблонами и расписанием.
- Добавлены новые плагины инвентаризации, позволяющие использовать стандартные плагины инвентаризации, такие как скрипты или строки ini/yaml/json. Также разработана сама система плагинов для инвентаризации, которая позволяет реализовывать собственные реализации формирования плагинов из различных источников.
- Улучшена система плагинов запуска, которая была выпущена в предыдущем релизе. Теперь можно писать собственные реализации запуска дополнительных команд, наподобие bash-скриптов, terraform или helm. В рамках рефакторинга добавлена поддержка плагинов в шаблонах и расписаниях. Также в плагинах теперь можно создавать цепочку вызовов для предварительной инициализации в репозитории.
- Реализована система расширений для записи строк из вывода в различные хранилища. Из коробки теперь поставляется плагин для записи в БД и python-logger с возможностью отправки вывода в stdout, файл или syslog.
- Очереди сообщений теперь обмениваются json-сообщениями, вместо pickle. Также ускорена работа по сериализации и десериализации данных для отправки в очередь.
- Улучшен пользовательский интерфейс и улучшена интеграция для автообновления с помощью Centrifugo.
- Обновлены ключевые зависимости, такие как Django, за счёт чего уменьшен список необходимых зависимостей (например, нативная поддержка redis для кэша).