[Nix-dev] ANNOUNCE: NixOps 1.0

Eelco Dolstra eelco.dolstra at logicblox.com
Tue Jun 25 13:54:37 CEST 2013


Hi all,

I'm proud to announce the first public release of NixOps, the NixOS cloud
deployment tool.  Release 1.0 can be found here:

  http://hydra.nixos.org/release/nixops/nixops-1.0

NixOps is now in Nixpkgs, so once the Nixpkgs channel is up to date, you can
install it by running "nix-env -i nixops".  More installation and usage
instructions can be found in the manual:

  http://hydra.nixos.org/build/5426864/download/1/manual/manual.html

The source code and issue tracker is here:

  https://github.com/NixOS/nixops

NixOps (formerly known as Charon) is a tool for provisioning and deploying NixOS
machines from declarative specifications.  It essentially extends NixOS'
declarative specification of single machines to networks of machines.  For
example, the following specifies a network of two NixOS machines, one running
Apache and the other running PostgreSQL:

  { webserver =
      { services.httpd.enable = true;
        services.httpd.documentRoot = ...;
        deployment.targetEnv = "ec2";
        deployment.ec2.region = "eu-west-1";
      };

    database =
      { services.postgresql.enable = true;
        deployment.targetEnv = "ec2";
        deployment.ec2.region = "us-east-1";
      };
  }

After specifying this network, running "nixops deploy" will instantiate these as
virtual machines in the Amazon EC2 cloud.  Redeploying is a matter of changing
the specification and rerunning "nixops deploy".  NixOps will then take any
steps necessary to ensure that the actual configuration of the system matches
the desired configuration.

There are many commands for managing or interacting with deployed machines, such
as "nixops ssh" to log in to a machine, "nixops ssh-for-each" to execute a
command on every machine, "nixops check" to determine the status of each
machine, and so on.

NixOps is not tied to EC2: it currently has backends for pre-existing physical
or virtual machines, for VirtualBox, and for EC2.  The VirtualBox backend makes
it easy to do test deployments before deploying to (say) EC2 for production, and
to provision test environments for development (a la Vagrant).  NixOps also
supports provisioning of non-machine cloud resources such as Amazon S3 buckets
or EC2 key pairs.

Feedback, patches and bug reports are welcome!

-- 
Eelco Dolstra | LogicBlox, Inc. | http://nixos.org/~eelco/


More information about the nix-dev mailing list