base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / ni / nixos-build-vms / nixos-build-vms.8
blob6a8f2c42eddfaa926ef3ada2735a5b31eb1f06a6
1 .Dd January 1, 1980
2 .Dt nixos-build-vms 8
3 .Os
4 .Sh NAME
5 .Nm nixos-build-vms
6 .Nd build a network of virtual machines from a network of NixOS configurations
10 .Sh SYNOPSIS
11 .Nm nixos-build-vms
12 .Op Fl -show-trace
13 .Op Fl -no-out-link
14 .Op Fl -help
15 .Op Fl -option Ar name value
16 .Pa network.nix
20 .Sh DESCRIPTION
22 This command builds a network of QEMU\-KVM virtual machines of a Nix expression
23 specifying a network of NixOS machines. The virtual network can be started by
24 executing the
25 .Pa bin/run-vms
26 shell script that is generated by this command. By default, a
27 .Pa result
28 symlink is produced that points to the generated virtual network.
30 .Pp
31 A network Nix expression has the following structure:
32 .Bd -literal -offset indent
34   test1 = {pkgs, config, ...}:
35     {
36       services.openssh.enable = true;
37       nixpkgs.localSystem.system = "i686-linux";
38       deployment.targetHost = "test1.example.net";
40       # Other NixOS options
41     };
43   test2 = {pkgs, config, ...}:
44     {
45       services.openssh.enable = true;
46       services.httpd.enable = true;
47       environment.systemPackages = [ pkgs.lynx ];
48       nixpkgs.localSystem.system = "x86_64-linux";
49       deployment.targetHost = "test2.example.net";
51       # Other NixOS options
52     };
54 .Ed
56 .Pp
57 Each attribute in the expression represents a machine in the network
58 .Ns (e.g.
59 .Va test1
60 and
61 .Va test2 Ns
62 ) referring to a function defining a NixOS configuration. In each NixOS
63 configuration, two attributes have a special meaning. The
64 .Va deployment.targetHost
65 specifies the address (domain name or IP address) of the system which is used by
66 .Ic ssh
67 to perform remote deployment operations. The
68 .Va nixpkgs.localSystem.system
69 attribute can be used to specify an architecture for the target machine, such as
70 .Ql i686-linux
71 which builds a 32-bit NixOS configuration. Omitting this property will build the
72 configuration for the same architecture as the host system.
76 .Sh OPTIONS
77 .Bl -tag -width indent
78 .It Fl -show-trace
79 Shows a trace of the output.
81 .It Fl -no-out-link
82 Do not create a
83 .Pa result
84 symlink.
86 .It Fl h , -help
87 Shows the usage of this command to the user.
89 .It Fl -option Ar name Va value
90 Set the Nix configuration option
91 .Va name
93 .Va value Ns
94 \&. This overrides settings in the Nix configuration file (see
95 .Xr nix.conf 5 Ns
97 .El
101 .Sh AUTHORS
102 .An -nosplit
103 .An Eelco Dolstra
105 .An the Nixpkgs/NixOS contributors