• 0 Posts
  • 9 Comments
Joined 1 year ago
cake
Cake day: July 24th, 2023

help-circle



  • Exactly, ansible is basically imperative, where write the steps declaratively.

    Whereas nixos is more like a compiler that compiles to a working linux install.

    If I added the software myprogram and a config file at /etc/myprogram.conf, that’s pretty easy in both. But if I needed to to then remove those it gets different .

    With nixos it’s at easy as removing the two lines that add the program and the config file; after the next “compile”, the file is gone and myprogram is no longer available in the PATH.

    With ansible you need to change the relevant step to use apt remove instead of apt install and to change the config file step in a step that removes the file.

    Don’t get me wrong, ansible is still better than writing a lot of bash scripts, especially if you don’t have people with a lot of shell experience.

    But tools like nixos and guix are on a whole other level.


  • Maybe your drive(s) fail and you want to reinstall. Then you already have a setup with all your software and config files installed. Just reinstall NixOS and re-apply your configuration (or build your own Install ISO ).
    And if you ever get a new laptop/desktop/VM/VPS you can do the same.

    Don’t forget to take backups, regardless of your setup tho.

    The reproducibility also leads to some surprise features, like being able to wipe your entire system on every boot. Since NixOS always puts the necessary files in the correct place, this is perfectly fine. If you then add some mechanism to persist specific data across reboots (a separate partition, or the Impermanence module), you will remove all kinda of randomly accumulated files on every boot.

    This means I have very small backups, because I have three kinds of data: stuff that is wiped on every boot, stuff that is persisted but not backed up (/nix/store, all kinds of caches) and stuff that is persisted and backed up (documents, repositories, media).

    None of my OS’s files are in the backups, which makes of them a lot smaller than my previous arch install.