Mk
убийца (в смысле "никому не нужная хуйня которой даже сам автор не будет пользоваться через 5 секунд") терраформов, ансиблов и тд с идеей:
- пуш, бинарник для менеджмента конфигурацией находится у оператора, на ремоутах ничего ставить не надо (mk ставит под капотом своего агента, но это происходит автоматически)
infrastructure as code
, где code это код, а неjson
/yaml
/hcl
/jsonnet
(хотя он и гораздо лучше чем остальные варианты)/etc
в моей голове это имеет много преимуществ, о которых я писал:
Quote
переписал скрипты для деплоя на ansible
, не выкупил зачем в ansible
нужны роли и что это вообще, а так же почему ansible
это не библиотека для питона. из альтернатив есть pyinfra но она просто не поддерживает докер, решил писать свою пупулупу для деплоя и прочего ибо писать инфру в виде кода выглядит во-первых, как реальный infrastructure-as-code
, во-вторых, это (как по мне) суперобоснованно:
- родная типизация, проверяемая компилятором, заместо
json
/yaml
схем, которые должны проверять плагины - родные докстринги для документации директив
- родные переменные вместо надстроек над
yaml
с обьявлением переменных в одной секции и использованием в фигурных скобках в другой секции - родные способы переиспользования кода в виде функций и переменных, вместо каких-то ролей, с которыми еще надо разбираться
- родные способы группировки функциональности в виде модулей
- можно переиспользовать любые библиотеки для чего угодно, а не лочиться на
jinja2
для темплейтинга файлов, которые еще и темплейтятся или не темплейтятся в рандомные моменты
разве что, хотелось бы это еще все делать на языке с строгой типизацией, алгебраическими типами и компиляцией в single binary, под это мог бы подходить ocaml, но на нем невозможно писать, еще rust, но там больше будет ебли чем полезного действия, в итоге остановился на гованге, ибо лучше, увы, ничего пока не изобрели
Была мысль сделать отдельно пост, почему это (в теории) должно работать, но пока не думаю, что у меня много есть о чем написать.