you are viewing a single comment's thread
view the rest of the comments
[–] 9 points 1 week ago (5 children)

I wonder why NixOS. I've never used it, so my surface level understanding guesses that it's related to the declarative config, but we have Ansible/Chef/Puppet.

  • source
  • hideshow 5 child comments
  • [–] 30 points 1 week ago (2 children)

    Pretty sure it's because NixOS is reproducible. You can send your configs to your friend and they'll get a file-for-file identical copy of NixOS to yours (obviously except the user files)

  • source
  • parent
  • hideshow 2 child comments
  • [–] 23 points 1 week ago (1 child)

    NixOS goes deeper than Ansible/Chef/Puppet. Those options use a declarative config, but they operate on a mutable system - in particular a system with a mutable package manager. They try to run the necessary operations to change the system state to match the config. But it's not guaranteed that you get exactly the same state if you roll back and forth between declarative config revisions, especially since there are parts of system state outside the scope of the Ansible/Chef/Puppet config.

    OTOH the Nix package manager is immutable down through the package manager, and also through system config files (which are linked to the current config generation in the Nix store). If you use a lock file then the NixOS config describes the exact state of every package, and of every managed config file.

  • source
  • parent
  • hideshow 1 child comment