mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-29 18:33:00 +00:00
5f8d14546b
* manual: Mark commands that require root Mark every command that requires to be run as root by prefixing them with '#' instead of '$'. * manual: Add note about commands that require root
111 lines
3.3 KiB
XML
111 lines
3.3 KiB
XML
<refentry xmlns="http://docbook.org/ns/docbook"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude">
|
|
|
|
<refmeta>
|
|
<refentrytitle><command>nixos-build-vms</command></refentrytitle>
|
|
<manvolnum>8</manvolnum>
|
|
<refmiscinfo class="source">NixOS</refmiscinfo>
|
|
<!-- <refmiscinfo class="version"><xi:include href="version.txt" parse="text"/></refmiscinfo> -->
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname><command>nixos-build-vms</command></refname>
|
|
<refpurpose>build a network of virtual machines from a network of NixOS configurations</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<cmdsynopsis>
|
|
<command>nixos-build-vms</command>
|
|
<arg><option>--show-trace</option></arg>
|
|
<arg><option>--no-out-link</option></arg>
|
|
<arg><option>--help</option></arg>
|
|
<arg choice="plain"><replaceable>network.nix</replaceable></arg>
|
|
</cmdsynopsis>
|
|
</refsynopsisdiv>
|
|
|
|
<refsection><title>Description</title>
|
|
|
|
<para>This command builds a network of QEMU-KVM virtual machines of a Nix expression
|
|
specifying a network of NixOS machines. The virtual network can be started by
|
|
executing the <filename>bin/run-vms</filename> shell script that is generated by
|
|
this command. By default, a <filename>result</filename> symlink is produced that
|
|
points to the generated virtual network.
|
|
</para>
|
|
|
|
<para>A network Nix expression has the following structure:
|
|
|
|
<screen>
|
|
{
|
|
test1 = {pkgs, config, ...}:
|
|
{
|
|
services.openssh.enable = true;
|
|
nixpkgs.system = "i686-linux";
|
|
deployment.targetHost = "test1.example.net";
|
|
|
|
# Other NixOS options
|
|
};
|
|
|
|
test2 = {pkgs, config, ...}:
|
|
{
|
|
services.openssh.enable = true;
|
|
services.httpd.enable = true;
|
|
environment.systemPackages = [ pkgs.lynx ];
|
|
nixpkgs.system = "x86_64-linux";
|
|
deployment.targetHost = "test2.example.net";
|
|
|
|
# Other NixOS options
|
|
};
|
|
}
|
|
</screen>
|
|
|
|
Each attribute in the expression represents a machine in the network
|
|
(e.g. <varname>test1</varname> and <varname>test2</varname>)
|
|
referring to a function defining a NixOS configuration.
|
|
In each NixOS configuration, two attributes have a special meaning.
|
|
The <varname>deployment.targetHost</varname> specifies the address
|
|
(domain name or IP address)
|
|
of the system which is used by <command>ssh</command> to perform
|
|
remote deployment operations. The <varname>nixpkgs.system</varname>
|
|
attribute can be used to specify an architecture for the target machine,
|
|
such as <varname>i686-linux</varname> which builds a 32-bit NixOS
|
|
configuration. Omitting this property will build the configuration
|
|
for the same architecture as the host system.
|
|
</para>
|
|
|
|
</refsection>
|
|
|
|
<refsection><title>Options</title>
|
|
|
|
<para>This command accepts the following options:</para>
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
<term><option>--show-trace</option></term>
|
|
<listitem>
|
|
<para>Shows a trace of the output.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--no-out-link</option></term>
|
|
<listitem>
|
|
<para>Do not create a 'result' symlink.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-h</option>, <option>--help</option></term>
|
|
<listitem>
|
|
<para>Shows the usage of this command to the user.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</refsection>
|
|
|
|
|
|
</refentry>
|