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

  • 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.

  • Re-thinking the filesystem

    Explore this novel Linux distro, which throws out the old Unix filesystem hierarchy in favor of something more modern.

  • Distri

    Linux package managers work too slowly. The experimental distri research project investigates ways to speed up package management.

  • Arch Linux

    If you’re looking for a fast, stable system without the GUI goo, try Arch Linux.

comments powered by Disqus

Direct Download

Read full article as PDF:

Price $2.95