[Nix-dev] Re: [Nix-commits] SVN commit: nix - r24410 - in nixos/trunk: lib modules/installer/tools modules/installer/tools/nixos-build-vms modules/installer/tools/nixos-deploy-network modules/virtualisation

Ludovic Courtès ludo at gnu.org
Sun Oct 24 13:04:27 CEST 2010


Hi Sander,

Sander van der Burg <S.vanderBurg at tudelft.nl> writes:

> Author: sandervanderburg
> Date: Thu Oct 21 22:50:12 2010
> New Revision: 24410
> URL: https://svn.nixos.org/websvn/nix/?rev=24410&sc=1
>
> Log:
> - 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

Nice!

How about putting this documentation in the manual?  It’d be more
readily available than in the commit log.  ;-)

Thanks,
Ludo’.



More information about the nix-dev mailing list