Commit graph

9 commits

Author SHA1 Message Date
Sander van der Burg 09c30053a2 Also pass the location of NixOS as argument to the deployment expression
svn path=/nixos/trunk/; revision=25275
2010-12-24 16:42:31 +00:00
Eelco Dolstra 37a9ffffb0 * Provide a default hostname and deployment target equal to the
attribute name of the machine in the model.  This allows
  networking.hostName and deployment.targetHost to be omitted for
  typical networks.

svn path=/nixos/trunk/; revision=25125
2010-12-14 13:36:54 +00:00
Sander van der Burg 11d2cd78e0 - deployment.targetHost is now used for connecting to remote hosts instead of deployment.hostname. This makes more sense.
- fixed error in the manual (nixos-deploy-network => nixos-build-vms)


svn path=/nixos/trunk/; revision=25031
2010-12-07 20:13:50 +00:00
Sander van der Burg 755c30c7a2 - nixos-deploy-network no longer uses an infrastructure model => use nixpkgs.system and deployment.hostname instead
- implemented --no-out-link option so that invoking these tools from scripts leave no garbage behind
- some misc. cleanups


svn path=/nixos/trunk/; revision=25019
2010-12-06 22:02:37 +00:00
Eelco Dolstra 651a38019d * nixos-deploy-network: build the deploy script locally as an
optimisation and workaround for Nix/210.

svn path=/nixos/trunk/; revision=24956
2010-12-02 18:09:53 +00:00
Eelco Dolstra e97a3d9cb6 * Fix incorrect path to switch-to-configuration.
svn path=/nixos/trunk/; revision=24955
2010-12-02 17:22:24 +00:00
Sander van der Burg 9c722e474d - Added nixos-build-vms command, which builds a virtual network from a network.nix expression (also used by nixos-deploy-network)
- Added a backdoor option to the interactive run-vms script. This allows me to intergrate the virtual network approach with Disnix
- Small documentation fixes

Some explanation:

The nixos-build-vms command line tool can be used to build a virtual network of a network.nix specification.
For example, a network configuration (network.nix) could look like this:

{
  test1 = 
    {pkgs, config, ...}:
 
    {
      services.openssh.enable = true;
      ...
    };

  test2 =
    {pkgs, config, ...}:
    
    {
      services.openssh.enable = true;
      services.xserver.enable = true;
    }

    ;
}

By typing the following instruction:

$ nixos-build-vms -n network.nix

a virtual network is built, which can be started by typing:

$ ./result/bin/run-vms

It is also possible to enable a backdoor. In this case *.socket files are stored in the current directory
which can be used by the end-user to invoke remote instruction on a VM in the network through a Unix
domain socket.

For example by building the network with the following instructions:

$ nixos-build-vms -n network.nix --use-backdoor

and launching the virtual network:

$ ./result/bin/run-vms

You can find two socket files in your current directory, namely: test1.socket and test2.socket.
These Unix domain sockets can be used to remotely administer the test1 and test2 machine
in the virtual network.

For example by running:

$ socat ./test1.socket stdio
ls /root

You can retrieve the contents of the /root directory of the virtual machine with identifier test1


svn path=/nixos/trunk/; revision=24410
2010-10-21 22:50:12 +00:00
Sander van der Burg 936e4e73d7 Modified the nixos-deploy-network script to use a 2PC-like approach illustrated in the Disnix HotSWUp paper for system configurations
svn path=/nixos/trunk/; revision=24352
2010-10-18 19:47:46 +00:00
Sander van der Burg 122e125d6b Added the nixos-deploy-network tool. With this tool you can write a network of NixOS configurations, e.g.:
{
  test1 = {pkgs, config, ...}:
    {
       # NixOS config of machine test1
       ...
    };

  test2 = {pkgs, config, ...}:
    {
       # NixOS config of machine test2
       ...
    };
}

And an infrastructure expression, e.g:

{
  test1 = {
    hostName = "test1.example.org";
    system = "i686-linux";
  };
  test2 = {
    hostName = "test2.example.org";
    system = "x86_64-linux";
  };
}

And by executing:

nixos-deploy-network -n network.nix -i infrastructure.nix

The system configurations in the network expression are built, transferred to the machines in the network and finally activated. 


svn path=/nixos/trunk/; revision=24146
2010-10-07 14:30:52 +00:00