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 the disk or filesystem 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: To see a complete list of attributes for an option, enter the following command: 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: 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: 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: 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: 3.2.5. Installing a virtual machine with Kickstart The following example installs a virtual machine using a kickstart file: 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 : 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: 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: 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:

Commands:
virt-install --help
virt install -- option =?
virt-install --name guest1-rhel7 --memory 2048 --vcpus 2 --disk size=8 --cdrom /path/to/rhel7.iso --os-variant rhel7
virt-install --name guest1-rhel7 --memory 2048 --vcpus 2 --disk /path/to/imported/disk.qcow --import --os-variant rhel7
virt-install --name guest1-rhel7 --memory 2048 --vcpus 2 --disk size=8 --location http://example.com/path/to/os --os-variant rhel7
virt-install --name guest1-rhel7 --memory 2048 --vcpus 2 --disk size=8 --network=bridge:br0 --pxe --os-variant rhel7
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"
--network default
--network br0
--network br0 --extra-args "ip= 192.168.1.2::192.168.1.1:255.255.255.0:test.example.com:eth0:none "
--network=none