GUI — это хорошо, но большие дяди хотят IaC

Вечерело, накрапывал морозный дождь… шел 7-й год разработки Roxy-WI. Понимание необходимости автоматизации пришло давно, поэтому был разработан API. Он был, скажем так, кривой и местами нелогичный, но работал. После создания RMON и написания к нему "нормального" API было решено создать API и для Roxy-WI с поддержкой CRUD и Swagger.

GUI — это хорошо, но большие дяди хотят IaC Linux, Системное администрирование, IT

После консультаций с опытными разработчиками API было принято решение написать его на Flask с использованием views и перейти на JWT-авторизацию. Старый API был разработан на фреймворке Bottle, но поскольку Roxy-WI был переписан на Flask, наличие двух фреймворков в одном проекте не казалось хорошей идеей. На тот момент я уже довольно хорошо изучил Flask. JWT был внедрён, чтобы объединить авторизацию в WEB-версии и API, так как до этого в API использовалась самописная авторизация.

И вот, спустя месяц была выпущена 8 версия! Помимо API и JWT также была внедрена валидация входящих данных на базе Pydantic. Pydantic оказался очень мощным инструментом, но я сопротивлялся использованию библиотеки очень долго - сам уже не знаю почему. И вот, API готов, но необходима документация, поэтому был нужен Swagger. Описывать самому структуру чуть-чуть (очень сильно, капец, как сильно, я же не YAML разработчик) не хотелось. И я решил попробовать ИИ, который предлагает JetBrains за 10 у.е. в месяц (зря что ли плачу?!). Так вот, роботы поработят нас еще не скоро и без работы не оставят :-p. В итоге получилось, правда пришлось поматериться пару вечеров.

GUI — это хорошо, но большие дяди хотят IaC Linux, Системное администрирование, IT

Редактирование конфиг

API готово, значит пора писать Terraform-провайдер. Долго ли, коротко ли, но первая версия была выпущена и там уже и я подключился к разработке провайдерая и обратился к за помощью. Rocky_Break написал первую версию провайдера и прислал мне книгу по Go. Оказалось, что мало написать API, оно должно еще быть консистентным. Долго ли, коротко ли, но первая версия была выпущена и там уже и я подключился к разработке провайдера (как же не удобно писать на Go, после Python :`( ).


Кстати! Чтобы была возможностью управлять HAProxy полностью терраформом было необходим доработать работу с конфигурациями HAProxy - теперь после "накликивания" себе конфига, его можно так же кликами изменить.

Так что теперь есть IaC вэй для создание HA-кластеров с возможностью создание UDP и HAProxy балансиров ;).

Лига Сисадминов

1.9K постов18.1K подписчика

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

5
Автор поста оценил этот комментарий

Нихера не понял, ну раз что-то сделал то ты молодец!

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
😅 спасибо) вообще написал терраформ провайдера для гуи который управляет балансирами
показать ответы
Автор поста оценил этот комментарий
Кластер docker swarm или кубернетис решает эту проблему, там https://metallb.universe.tf/usage/ или ingress на основе traefik и keepalived не нужен
раскрыть ветку (1)
Автор поста оценил этот комментарий
Да, но не все любят сворм не всем нужен куб и не всегда они подходят
Автор поста оценил этот комментарий
Там разные провайдеры конфигов у traefik, хоть через api, хоть файлом, хоть автообнаружение сервисов.
раскрыть ветку (1)
Автор поста оценил этот комментарий
У traefic да, а у keepalived?
показать ответы
Автор поста оценил этот комментарий
Блин как все сложно у вас, проще 3 конфига воткнуть keepalived и traefik настроить или в кубере в 2 клика и управлять там проще
раскрыть ветку (1)
Автор поста оценил этот комментарий
А если таких конфигов сотни? Или надо часто создавать новые?)
показать ответы
Автор поста оценил этот комментарий

Ансибль не?

раскрыть ветку (1)
Автор поста оценил этот комментарий

возможно потом тоже :)

2
Автор поста оценил этот комментарий

и не делай на ИП!, делай нормальное ООО заводи его в реестр минцЫфры

раскрыть ветку (1)
Автор поста оценил этот комментарий

понял, спасибо за совет )

1
Автор поста оценил этот комментарий

Не туда ты с IaC зашёл)

раскрыть ветку (1)
Автор поста оценил этот комментарий

Тут не знают что такое IaC? )

1
Автор поста оценил этот комментарий

так умник... это что такое?? Get started on Boosty or on Patreon у тебя на rmon

как вот такие платежи проводить по бухгалтерии?? ))))

что-то не правильно тут, надо сделать продажу как продажу с полным законодательным покрытием

раскрыть ветку (1)
Автор поста оценил этот комментарий

Roxy-WI - это веб интерфейс для управления и мониторинга HA кластерами (HAProxy, Nginx, Keepalived). По продажам, да, уже в процессе )

показать ответы
1
Автор поста оценил этот комментарий

Моя твоя не понимайт.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Эх... Вообще ничего не понятно или конкретные детали? Могу рассказать подробнее:)