NixOps: a tool for deploying to NixOS machines in a network or the cloud
NixOps is a tool for deploying to NixOS machines in a network or the cloud. Key features include:
For more information, please refer to the NixOps manual.
NixOps is included in nixpkgs and can be executed in a shell as follows:
$ nix-shell -p nixops
or for a bleeding edge version, including many fixes relative to the 1.7 series,
$ nix-shell -p nixopsUnstable
You may need access to a Nix remote builder if your system does not support the deployment's
system builds directly. MacOS users may use a virtual machine with NixOS for this purpose.
It is also possible to use cross-compilation with NixOps, by setting
nixpkgs.crossSystem. A mix of remote, emulated and cross builds is also possible; see this writeup on eno.space.
You can build the Nix package by simply invoking
nix-build on the project root:
shell.nix provides an environment with all dependencies required for working on NixOps. You can use
nix-shell to enter a shell suitable for working on NixOps which will contain all Python dependencies specified in pyproject.toml
Inside the development shell the tests can be executed as follows:
$ ./coverage-tests.py -a '!libvirtd,!gce,!ec2,!azure' -v
NixOps' documentation uses reStructuredText. When editing the docs, get a live-reloading, rendered version of the docs:
nixops$ ./live-docs.py Serving on http://127.0.0.1:5500
and verify its lints before committing:
Contributions to the project are welcome in the form of GitHub PRs. Please consider the following guidelines before creating PRs:
Licensed under LGPL-3.0.