VMware VM Customization Specification is used for cloning of existing data center VMs or deploying a VM from a template. Some non-VMware admins might not know this feature if they don't work a lot with VMware technologies. It's nobody's fault, everybody is learning every day in IT. Our blog was created mainly for this purpose – learning resource. So, that's why this post called What is VMware VM Customization Specification and How to use it?
During my IT journey, I met quite a few people which were focusing on Microsoft ecosystem and virtualization. However, they were also to manage, maintain and upgrade virtual infrastructures running VMware vSphere.
If you're VMware admin, you probably know your way. However, the screenshots and the workflow is from the latest VMware vSphere 6.7 Update 1 so there might have been some changes since the version you are managing in your datacenter.
You can add guest OS specification to an existing virtual machine. When you customize a guest operating system, you can prevent conflicts that might result if you deploy virtual machines with identical settings, such as duplicate computer names or same SID. You can change the computer name, network settings, and license settings when creating the VM Customization Specification via a built-in wizard.
When you clone an existing virtual machine or deploy a virtual machine from a VM template in a folder, you can customize the guest operating system of the resulting virtual machine during the clone or the deployment tasks.
As you can see, through the main vCenter sever menu you can see an icon called VM Customization Specifications. This is the one we will use today.
Two Ways of using VM Customization Specification:
- When Cloning Existing VM – At first you must create a new VM Customization specification (today's post is focusing on the procedure) and then you can use this specifcation to clone and personalize the Guest OS.
- When Personalizing OS of a VM deployed from Template – When you deploy a virtual machine from a template in a content library, you can customize the guest operating system after the deployment task is complete. The process is straightforward. Right-click a virtual machine in the vSphere inventory, and select Guest OS > Customize Guest OS. The Customize Guest OS wizard opens. Apply a customization specification to the VM.
The VM customization specification can be used for mass deployments of VMs. Imagine you have the need to create several VMs for a new lab. Use this feature to ease your job. It can be applied to new clones, deploying VM from a template, or existing virtual machines that are powered off
Create New VM Customization Specifications
Here we will walk you through the VM Customization Specification. We will create a new VM customization Specification and we will have a look at how does it looks like with the vSphere 6.7 U1 HTML 5 web client.
Connect via vSphere client via HTML5 option.
https://FQDN_of_your_vCenter/
Chose the Launch vSphere client
Go to Menu > Shortcuts > VM Customization Specifications and click the icon.
Once there Select the VM customization Specifications > New. A new wizard will start.
The wizard will walk you through the different options where we will have many options. First, you'll have to choose a target OS (Windows or Linux). By default, the Windows option is selected. The option to Generate a new security identity (SID) is also checked.
Put some meaningful name and also you can specify a description. Note the vCenter server drop down option. Yes, if you have several vCenter servers in a linked mode you would be able to select the one who will be used.
Follow the wizard and click next to continue to the next page. Here you can put some options concerning the Windows OS registration. You know, that Microsoft stuff where this information will appear later on within the “System” page.
Next, we have an option to specify whether we want to use a virtual machine name, or if you want to specify your own name for the target VM. You can also check the middle option which allows you to enter the name in the Clone/Deploy wizard.
Next option allows us to specify product key. Yes, an important option which depends on the whether you have a volume licensing or the VM does not require this option. Click the required option and then click next to continue with the wizard.
Admin password needed for the VM. You have to fill this in and you have also an option to check the box “Automatically login as Administrator”. This option is optional only.
Let's continue with other options. There is a time zone. Pretty no-brainer here. Depends where you live, you'll apply settings for your time zone. No comment here. Let's continue further and see what's next. Click the Next button to continue.
Here we have an option to specify commands which will run once. You might need to check the Sysprep help for that. See the Microsoft Sysprep documentation for information about RunOnce commands.
What's next? The network settings. We can use DHCP (by default pre-checked), but we can also specify some manual settings, where there can, for example, be a prompt for the admin to enter an IP address manually (if he needs to) when the sysprep is running.
Also a manual IP can be forced, but in this case, every VM who you'll deploy, will have that IP. (not really usefull IMHO). But it's there and there might be some use cases I guess.
Now finally, we have an option to specify whether we want to join this VM to a Microsoft domain or stay in Workgroup. In case you want the VM to a domain, you'll need to specify the username and password of user who has the Active Directory (AD) rights for that purpose.
This is usually Domain Admin, but in many organization, it can be an account with fewer privileges.
NOTE: You might be wondering where and how this password is stored?
If you export the VM customization specification and have a look at the XML file, you'll see that the password is encrypted. It's NOT stored in plain text.
Ok, let's continue. But it seems that we're done.
Here is the final, Ready to complete page letting us know what we have specified on each page. Note that we can always come back later and modify ANY of this in each step.
In order to do that simply select the VM customization specification and click Edit. Then you can jump right into the step (for example networking) and modify the networking settings if you need to.
You can also:
- Import
- Export
- Duplicate
- Edit
- Delete
Here is a video from the workflow. We used our lab for this purpose.
As you can see, the VM Customization Specification is pretty straightforward. It's a very convenient way to create an answer file for Sysprep which is used for customization of deployed VM from templates, for cloning or for deploying templates from the content library.
The customization specification that you created is listed in the Customization Specification Manager. You can use the specification to customize virtual machine guest operating systems. You can create any number of VM customization specifications.
As being said, the post was meant to be for Non-VMware admins. Enjoy… -:)
More from ESX Virtualization
- What is VMware Per-VM EVC?
- What is VMware Memory Ballooning?
- What is Microsoft MSIX Packaging Tool?
- Install and Configure VMware vCSA 6.7
- VMware ESXi and ESXTOP “P” Key is New in vSphere 6.5 – Did you know?
- What is VMware UNMAP? – Dead Space Reclamation
Stay tuned through RSS, and social media channels (Twitter, FB, YouTube)
David says
Hi,
Great article !
I couldn’t find information on the attributes from the xml file (the one you’ve exported) for further customization. My current issue is then deploying Windows 2016 template using the customization Specifications are the regional settings, keyboard that are set to the US settings. I was hoping to configure the template using the xml (customization Specifications) using specific attribute.
Any idea how to solve this issue ?
Vladan SEGET says
I’m afraid we don’t have that option for regional settings, but perhaps I’m wrong.
Luke Smithy says
Hi this is Luke Smithy ..
Global IT & Management training consultant at Learnfly Academy..
I am a regular reader of your website always read your content which is really helpful for me as well as for my work. Keep Posting like this..