3.2. Creating Guests with virt-install
You can use the
virt-install
command to create virtual machines and install operating system on those virtual machines from the command line. virt-install
can be used either interactively or as part of a script to automate the creation of virtual machines. If you are using an interactive graphical installation, you must have virt-viewer installed before you run virt-install
. In addition, you can start an unattended installation of virtual machine operating systems using virt-install
with kickstart files.
Note
You might need root privileges in order for some
virt-install
commands to complete successfully.
The
virt-install
utility uses a number of command-line options. However, most virt-install
options are not required.
The main required options for virtual guest machine installations are:
--name
- The name of the virtual machine.
--memory
- The amount of memory (RAM) to allocate to the guest, in MiB.
- Guest storage
- Use one of the following guest storage options:
--disk
The storage configuration details for the virtual machine. If you use the--disk none
option, the virtual machine is created with no disk space.--filesystem
The path to the file system for the virtual machine guest.
- Installation method
- Use one of the following installation methods:
--location
The location of the installation media.--cdrom
The file or device used as a virtual CD-ROM device. It can be path to an ISO image, or a URL from which to fetch or access a minimal boot ISO image. However, it can not be a physical host CD-ROM or DVD-ROM device.--pxe
Uses the PXE boot protocol to load the initial ramdisk and kernel for starting the guest installation process.--import
Skips the OS installation process and builds a guest around an existing disk image. The device used for booting is the first device specified by thedisk
orfilesystem
option.--boot
The post-install VM boot configuration. This option allows specifying a boot device order, permanently booting off kernel and initrd with optional kernel arguments and enabling a BIOS boot menu.
To see a complete list of options, enter the following command:
# virt-install --help
To see a complete list of attributes for an option, enter the following command:
# virt install --option=?
The
virt-install
man page also documents each command option, important variables, and examples.
Prior to running
virt-install
, you may also need to use qemu-img
to configure storage options. For instructions on using qemu-img
, see Chapter 14, Using qemu-img.
3.2.1. Installing a virtual machine from an ISO image
The following example installs a virtual machine from an ISO image:
#virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--cdrom /path/to/rhel7.iso \
--os-variant rhel7
The
--cdrom /path/to/rhel7.iso
option specifies that the virtual machine will be installed from the CD or DVD image at the specified location.
3.2.2. Importing a virtual machine image
The following example imports a virtual machine from a virtual disk image:
#virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk /path/to/imported/disk.qcow \
--import \
--os-variant rhel7
The
--import
option specifies that the virtual machine will be imported from the virtual disk image specified by the --disk /path/to/imported/disk.qcow
option.
3.2.3. Installing a virtual machine from the network
The following example installs a virtual machine from a network location:
#virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--location http://example.com/path/to/os \
--os-variant rhel7
The
--location http://example.com/path/to/os
option specifies that the installation tree is at the specified network location.
3.2.4. Installing a virtual machine using PXE
When installing a virtual machine using the PXE boot protocol, both the
--network
option specifying a bridged network and the --pxe
option must be specified.
The following example installs a virtual machine using PXE:
#virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--network=bridge:br0 \
--pxe \
--os-variant rhel7
3.2.5. Installing a virtual machine with Kickstart
The following example installs a virtual machine using a kickstart file:
#virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--location http://example.com/path/to/os \
--os-variant rhel7 \
--initrd-inject /path/to/ks.cfg \
--extra-args="ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"
The
initrd-inject
and the extra-args
options specify that the virtual machine will be installed using a Kickstarter file.
3.2.6. Configuring the guest virtual machine network during guest creation
When creating a guest virtual machine, you can specify and configure the network for the virtual machine. This section provides the options for each of the guest virtual machine main network types.
Default network with NAT
The default network uses
libvirtd
's network address translation (NAT) virtual network switch. For more information about NAT, see Section 6.1, “Network Address Translation (NAT) with libvirt”.
Before creating a guest virtual machine with the default network with NAT, ensure that the libvirt-daemon-config-network package is installed.
To configure a NAT network for the guest virtual machine, use the following option for
virt-install
:
--network default
Note
If no
network
option is specified, the guest virtual machine is configured with a default network with NAT.
Bridged network with DHCP
When configured for bridged networking, the guest uses an external DHCP server. This option should be used if the host has a static networking configuration and the guest requires full inbound and outbound connectivity with the local area network (LAN). It should be used if live migration will be performed with the guest virtual machine. To configure a bridged network with DHCP for the guest virtual machine, use the following option:
--network br0
Note
The bridge must be created separately, prior to running
virt-install
. For details on creating a network bridge, see Section 6.4.1, “Configuring Bridged Networking on a Red Hat Enterprise Linux 7 Host”.
Bridged network with a static IP address
Bridged networking can also be used to configure the guest to use a static IP address. To configure a bridged network with a static IP address for the guest virtual machine, use the following options:
--network br0 \
--extra-args "ip=192.168.1.2::192.168.1.1:255.255.255.0:test.example.com:eth0:none"
For more information on network booting options, see the Red Hat Enterprise Linux 7 Installation Guide.
No network
To configure a guest virtual machine with no network interface, use the following option:
--network=none