Bare Metal
Удивительно, что, несмотря на то, что вся индустрия нуждается в декларативных идемпотентных методах настройки для Linux-машин, у нас так и не появилось “решения по умолчанию”.
- есть Ansible, который всё больше становится декларативным, но не является таковым по своей сути
- есть Puppet и SaltStack с крутой кривой обучения и требованиями по инфраструктуре вокруг
- есть Talos, который вроде бы всем хорош, но заточен под k8s
- есть легкий и быстрый CFEngine, но с очень специфичным DSL и крутой кривой обучения
Но нет готовых распространённых решений, которые являются стандартом для индустрии, как это произошло с тем же terraform или k8s.
Хотя казалось бы, всю настройку можно свести к ограниченному количеству примитивов: настройки, пользователи, файлы, пакеты, сервисы и так далее. И, вроде бы, в этом нет ничего невозможного. Или это только мне так кажется?
It’s surprising that, despite the entire industry needing declarative and idempotent configuration methods for Linux machines, we still don’t have a “default go-to solution.” • There’s Ansible, which is becoming increasingly declarative, but isn’t truly declarative by nature. • There’s Puppet and SaltStack, both of which have steep learning curves and require a fair amount of surrounding infrastructure. • There’s Talos, which seems to do everything right, but is suitable only for k8s. • There’s the lightweight and fast CFEngine, but it uses a very old-school DSL and also has a steep learning curve.
Yet there’s no widely adopted solution that has become the de facto industry standard — like Terraform or Kubernetes did in their domains.
And you’d think the entire configuration process could be boiled down to a limited set of primitives: settings, users, files, packages, services, and so on. It doesn’t seem like an impossible task. Or is it just me?