Chapter 7. Templates A template is a copy of a virtual machine that you can use to simplify the subsequent, repeated creation of similar virtual machines. Templates capture the configuration of software, configuration of hardware, and the software installed on the virtual machine on which the template is based. The virtual machine on which a template is based is known as the source virtual machine. When you create a template based on a virtual machine, a read-only copy of the virtual machine's disk is created. This read-only disk becomes the base disk image of the new template, and of any virtual machines created based on the template. As such, the template cannot be deleted while any virtual machines created based on the template exist in the environment. Virtual machines created based on a template use the same NIC type and driver as the original virtual machine, but are assigned separate, unique MAC addresses. You can create a virtual machine directly from Compute Templates , as well as from Compute Virtual Machines . In Compute Templates , select the required template and click New VM . For more information on selecting the settings and controls for the new virtual machine see Section A.1.1, "Virtual Machine General Settings Explained" . 7.1. Sealing Virtual Machines in Preparation for Deployment as Templates This section describes procedures for sealing Linux and Windows virtual machines. Sealing is the process of removing all system-specific details from a virtual machine before creating a template based on that virtual machine. Sealing is necessary to prevent the same details from appearing on multiple virtual machines created based on the same template. It is also necessary to ensure the functionality of other features, such as predictable vNIC order. 7.1.1. Sealing a Linux Virtual Machine for Deployment as a Template To seal a Linux virtual machine during the template creation process, select the Seal Template check box in the New Template window. See Section 7.2, "Creating a Template" for details. Note You cannot create a sealed virtual machine template based on a RHEL 8.0 virtual machine in Red Hat Virtualization 4.3, because of the following limitations: libguestfs tools on Red Hat Enterprise Linux 7 do not support modifying Red Hat Enterprise Linux 8 disk images because of additional XFS functionality added in Red Hat Enterprise Linux 8. Red Hat Virtualization 4.3 does not support hypervisors based on Red Hat Enterprise Linux 8.0 7.1.2. Sealing a Windows Virtual Machine for Deployment as a Template A template created for Windows virtual machines must be generalized (sealed) before being used to deploy virtual machines. This ensures that machine-specific settings are not reproduced in the template. Sysprep is used to seal Windows templates before use. Sysprep generates a complete unattended installation answer file. Default values for several Windows operating systems are available in the /usr/share/ovirt-engine/conf/sysprep/ directory. These files act as templates for Sysprep . The fields in these files can be copied, pasted, and altered as required. This definition will override any values entered into the Initial Run fields of the Edit Virtual Machine window. The Sysprep file can be edited to affect various aspects of the Windows virtual machines created from the template that the Sysprep file is attached to. These include the provisioning of Windows, setting up the required domain membership, configuring the hostname, and setting the security policy. Replacement strings can be used to substitute values provided in the default files in the /usr/share/ovirt-engine/conf/sysprep/ directory. For example, "<Domain><![CDATA[USDJoinDomainUSD]]></Domain>" can be used to indicate the domain to join. 7.1.2.1. Prerequisites for Sealing a Windows Virtual Machine Important Do not reboot the virtual machine while Sysprep is running. Before starting Sysprep , verify that the following settings are configured: The Windows virtual machine parameters have been correctly defined. If not, click Edit in Compute Virtual Machines and enter the required information in the Operating System and Cluster fields. The correct product key has been defined in an override file on the Manager. The override file must be created under /etc/ovirt-engine/osinfo.conf.d/ , have a filename that puts it after /etc/ovirt-engine/osinfo.conf.d/00-defaults.properties , and ends in .properties . For example, /etc/ovirt-engine/osinfo.conf.d/10-productkeys.properties . The last file will have precedence and override any other file. If not, copy the default values for your Windows operating system from /etc/ovirt-engine/osinfo.conf.d/00-defaults.properties into the override file, and input your values in the productKey.value and sysprepPath.value fields. Example 7.1. Windows 7 Default Configuration Values 7.1.2.2. Sealing a Windows 7, Windows 2008, or Windows 2012 Virtual Machine for Deployment as Template Seal a Windows 7, Windows 2008, or Windows 2012 virtual machine before creating a template to use to deploy virtual machines. Sealing a Windows 7, Windows 2008, or Windows 2012 Virtual Machine for Deployment as a Template On the Windows virtual machine, launch Sysprep from C:\Windows\System32\sysprep\sysprep.exe . Enter the following information into Sysprep : Under System Cleanup Action , select Enter System Out-of-Box-Experience (OOBE) . Select the Generalize check box if you need to change the computer's system identification number (SID). Under Shutdown Options , select Shutdown . Click OK to complete the sealing process; the virtual machine shuts down automatically upon completion. The Windows 7, Windows 2008, or Windows 2012 virtual machine is sealed and ready to create a template to use for deploying virtual machines.

Commands:
Windows7(11, OsType.Windows, false),false os.windows_7.id.value = 11 os.windows_7.name.value = Windows 7 os.windows_7.derivedFrom.value = windows_xp os.windows_7.sysprepPath.value = USD{ENGINE_USR}/conf/sysprep/sysprep.w7 os.windows_7.productKey.value = os.windows_7.devices.audio.value = ich6 os.windows_7.devices.diskInterfaces.value.3.3 = IDE, VirtIO_SCSI, VirtIO os.windows_7.devices.diskInterfaces.value.3.4 = IDE, VirtIO_SCSI, VirtIO os.windows_7.devices.diskInterfaces.value.3.5 = IDE, VirtIO_SCSI, VirtIO os.windows_7.isTimezoneTypeInteger.value = false