I’m really liking NixOS. I originally installed it as my daily driver on my personal machine in order to have reproducible, declarative operating system builds on top of an immutable operating system so that, in the spirit of infrastructure as code (IaC), I can look into a file (or files) and see every single configuration detail of my operating system. Operating systems accumulate cruft over time, and I’ve seen running “mystery machines” that have been up for a long time, hosting important applications, often changing ownership, with numerous people configuring them over time. No one fully understands the system, but it’s working, so just don’t touch it…!!
NixOS, with its IaC and immutable nature, solves the mystery machine problem. With all important OS files read-only to users and configuration ONLY allowed through the config files, it forces us flawed humans to be responsible… (even if we only have to do just this ONE little thing real quick). Ansible and other config management tools are great, but they are still vulnerable to drift if people still have root access to the host. Human nature being what it is, this is just laying the groundwork for a future mystery machine.