NixOS and the case for declarative configuration

Amazon Included

In practical terms, you will probably not use VirtualBox very often as your deployment platform, but you might want to run your VMs in the Amazon cloud, which NixOps also supports. NixOps offers support for the EC2, S3 storage and the Simple Queue Service (SQS) services, as well as authentication via IAM (Identity and Access Management) and SSH key pairs.

Although NixOps mainly focuses on virtualized systems, it interestingly offers the possibility of installing physical systems for the hosting provider, Hetzner [4] (bare metal deployment). In contrast to the Amazon setup, NixOps does not rely on a storage API to install a VM but uses the information provided by the Hetzner Rescue Console to bootstrap the new system. In principle, nothing prevents you from applying this method with other hosting providers and writing similar backends. This kind of support would certainly be welcome in the NixOps community.


The Nix approach resembles other well-known configuration management tools, such as Boss and Puppet. Instead of changing the state of a system ad hoc with commands (imperatively), these tools describe the desired state in configuration files and leave it to the tools to bring about the changes. The Nix family takes this process one step further by applying principles that are well-known from functional programming: the "output" is a new, working system. The Nix package manager resolves dependencies that exist in configuration files.

Nix comes from the academic environment, but it is also used widely in production. For virtualized and cloud systems, NixOS and NixOps offer an interesting option for systematic configuration and deployment of VMs. The Nix environment currently supports production systems such as VirtualBox, the Amazon Cloud, and the hosting provider Hetzner. An interesting future addition would be better support for Linux KVM and other cloud environments.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • NixOS 22.5 Is Now Available

    The latest release of NixOS with a much-improved package manager and a user-friendly graphical installer.

  • NixOS 21.11 Now Available for Download

    NixOS “Porcupine” has been made available for installation and includes numerous improvements.

  • Nix and NixOS

    NixOS and the Nix package manager offer a promising new approach to the challenge of managing packages in Linux.

  • Next Gen Distributions

    With systemd poised to revolutionize the init process, we look at Linux distributions that have left the familiar path, use new approaches and techniques, and are paving the way for the next generation of Linux distros.

  • News

    In the news: EndeavorOS 21.4 Has Arrived; NixOS 21.11 Now Available for Download; KDE Plasma Developers Introduce a Gnome-Like Overview; Rocky Linux 8.5 Now Available with Secure Boot Support; CronRAT Malware Targets Linux Servers; AlmaLinux OS 8.5 Now Available

comments powered by Disqus