Bare Metal
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 specifically tailored for K8s.
- There’s the lightweight and fast CFEngine, but it uses a very specific DSL and 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?