4.2. Demonstration: Creating and Managing a Guest with Command-line Utilities To show how virtualization tasks are performed in the CLI, this section provides a demonstration where a new guest virtual machine is created, an OS is installed on it, and the guest is afterwards interacted with and managed using CLI commands. 4.2.1. Installation The following creates a new guest, here named guest1-rhel7 , and starts an OS installation from a Red Hat Enterprise Linux 7 Workstation ISO image. This image is obtainable on the Customer Portal and in this example, it is currently located in your ~/Downloads/ folder. The guest is allocated with two virtual CPUs, 2048 MB RAM, and 8 GB of disk space. This launches a graphical Anaconda installer in the virt-viewer application. For more information on the installation, see the Installation Guide . Note On host systems without access to a graphical interface, it is possible to install the guest OS using text-based Anaconda , using a virt-install command similar to the following: If the installation completes successfully, the command line displays the following: It is now possible to make any desirable configuration to the guest. However, to manage the guest settings safely, it is advisable to shut down the guest first. 4.2.2. Attaching a Device To make the guest detect and use a USB device connected to the host, a Samsung mobile phone in this example, start by using the lsusb command on the host to retrieve the device's IDs. Afterwards, use your text editor of choice on the host to create an XML file for the device, samsung_USB_device.xml in this example, where you will input the vendor and product IDs. Finally, use the virsh attach-device command to attach the device to the guest. Note It is possible to attach devices to a running guest as well. To do so, use the --live option. 4.2.3. Interacting with the Guest To begin using the guest1-rhel7 guest, start it first. Depending on whether your host system has a graphical display, you can either interact with the guest using the virt-viewer application, or using an SSH shell. On systems with a graphical display, use virt-viewer : Afterwards, you can interact with the screen output in the virt-viewer window like with an OS GUI on a physical machine. For example, you can use the Subscription Manager application to register your Red Hat Enterprise Linux guest OS: If the host or guest has a text-only interface, use SSH. This requires knowing the IP address of the guest. If you do not know the IP address, it can be obtained using the virsh domifaddr command. Note For virsh domifaddr to work, the guest must be running, reachable on a network, and may require the QEMU guest agent to be activated. Afterwards, you can interact with the host terminal as if using a terminal on the guest machine. For example, you can use the subscription-manager utility to register your Red Hat Enterprise Linux guest OS: 4.2.4. Diagnostics Display general information about the state of the guest: 4.2.5. Creating Snapshots To back up the state of the guest, you can use the virsh snapshot-create command. You can display your current snapshots and the XML setting of each one. This snapshot can later be loaded to revert the guest to the state saved in the snapshot.

Commands:
virt-install --name guest1-rhel7 --memory 2048 --vcpus 2 --disk size=8 --cdrom /home/username/Downloads/rhel-workstation-7.4-x86_64-dvd.iso --os-variant rhel7 Starting install Allocating 'guest1-rhel7.qcow2' | 8.0 GB 00:00:00
virt-install -name rhel7anaconda-guest -r 1024 --location=/home/jherrman/Downloads/rhel-workstation-7.4-x86_64-dvd.iso --disk size=8 --nographics --extra-args="console=tty0 console=ttyS0,115200n8"
Domain creation completed. Restarting guest.
virsh shutdown guest1-rhel7 Domain guest1-rhel7 is being shutdown
lsusb [...] Bus 003 Device 007: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy (MTP)
vim samsung_USB_device.xml
<hostdev mode='subsystem' type='usb' managed='yes'> <source> <vendor id='0x04e8'/> <product id='0x6860'/> </source> </hostdev>
virsh attach-device guest1-rhel7 --file samsung_USB_device.xml --config Device attached successfully
virsh start guest1-rhel7 Domain guest1-rhel7 started
virt-viewer guest1-rhel7
virsh domifaddr guest1-rhel7 Name MAC address Protocol Address ------------------------------------------------------------------------------- vnet0 52:54:00:65:29:21 ipv4 10.34.3.125/24 ssh root@10.34.3.125 root@10.34.3.125's password: Last login: Wed Jul 19 18:27:10 2017 from 192.168.122.1
subscription-manager register Registering to: subscription.rhsm.redhat.com:443/subscription Username: username@sample.com Password: The system has been registered with ID: 30b5e666-67f9-53bb-4b90-c2a88e5be789
virsh dominfo guest1-rhel7 Id: 1 Name: guest1-rhel7 UUID: ec0c0122-fb63-4a54-b602-5cf84f5e2dfd OS Type: hvm State: running CPU(s): 2 CPU time: 33.4s Max memory: 2097152 KiB Used memory: 2097152 KiB Persistent: yes Autostart: disable Managed save: no Security model: selinux Security DOI: 0 Security label: unconfined_u:unconfined_r:svirt_t:s0:c102,c792 (enforcing)
virsh snapshot-create guest1-rhel7 Domain snapshot 1500563241 created
virsh snapshot-list guest1-rhel7 Name Creation Time State ------------------------------------------------------------ 1500563241 2017-07-20 17:07:21 +0200 shutoff virsh snapshot-dumpxml guest1-rhel7 1500563241 <domainsnapshot> <name>1500563241</name> <state>shutoff</state> <creationTime>1500563241</creationTime> <memory snapshot='no'/> <disks> <disk name='vda' snapshot='internal'/> [...]
virsh snapshot-revert guest1-rhel7 --snapshotname 150056324