Creating a Cent OS7 template for VMware Guest Customization and Deployment

To start off with, Download the latest version of CentOs7 from https://www.centos.org/download/

At the time of writing, this is: CentOS-7 (1804)

Lets start by creating a new Virtual machine.  I will select Esxi 6.5 for backward compatibility  with other host.

Mount the ISO,

 

Power on the VM and begin installing of the OS and begin the installation

Note: During the install we will enable the default nic interface and set this to DHCP

Note: Since the ISO used was from a most recent release, openvm-tools is auto installed along with the linux installer. if you are using an older version of the cent os installer iso, you must install open-vm-tools with the below command (will need the VM connected to the internet).

yum install open-vm-tools

I would recommend updating the tools to the latest release.

 

and then followed by installing pearl (pre-requisites for guest customization)

yum install perl

 

Once done, power down the VM and convert it to a template.

Test the template by deploying a VM with guest customization.

 

 

 

When the VM boots up you should see the host name set to the name of the VM (the spec that I used to customize uses the name as of vsphere inventory as the the virtual machine name)

 

Looking at the VM that was just deployed, we see the host name has changed as per the specification.

Troubleshooting:

Log file for guest cust:

/var/log/vmware-imc/toolsDeployPkg.log

 

 

Generate a memory dump for a frozen VMware, windows virtual machine.

  1. Enable complete memory dump feature by changing following registry keys:

 

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\CrashControl

CrashDumpEnabled    REG_DWORD    0x1

 

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management

PagingFiles    REG_MULTI_SZ    c:\pagefile.sys 13312 13312

 

  1. Enable keyboard crash dump feature by adding following registry keys:

 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

Value Name: CrashOnCtrlScroll

Data Type:    REG_DWORD

Value:    1

 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters

Value Name: CrashOnCtrlScroll

Data Type:    REG_DWORD

Value:    1

 

  1. Enable NMI crash dump feature by adding following key:

 

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\CrashControl

Value Name: NMICrashDump

Data Type:  REG_DWORD

Value:   1

 

  1. Restart Server to take effects.

 

  1. Do a memory dump test with below steps:

 

  1. a)       Capture a kernel memory dump in following ways:

o    Send NMI to Guest OS

How to send NMI to Guest OS on ESXi 6.x (2149185)

 

Or

 

o   On VM console, press Right Ctrl + Scroll Lock button 2 times.

 

  1. b)       Machine crashes into blue screen and save a memory dump, restart automatically once dump generation reaches 100%. You should be able to see 12GB C:\Windows\MEMORY.DMP file.

adding VCSA to domain renames the dns suffix to the domain.

The other day, I had a customer having all management applications on a different DNS suffux as that of the domain.

Ie: Domain : ikigo.net
Management host’s: on mgmt.local

on the customer’s setup, the VCSA was deployed with an FQDN VCSA.MGMT.local However, when the appliance was added to domain ikigo.net, the VCSA renames itself to VCSA.ikigo.net

 

Apparently the likewise scripts on VCSA is set to rename the appliance to the domain suffix. This might cause all sort of strange behaviour/PNID mismatches on normal functionality.

 

In order to sort this/set this right, we  wanna invoke the domain join script ignoring  the hostname.

Syntax: /opt/likewise/bin/domainjoin-cli join –disable hostname domain_name domain_user

 

Example: 
root@vcsa [ ~ ]# /opt/likewise/bin/domainjoin-cli join –disable hostname ikigo.net nik
Joining to AD Domain:   ikigo.net
With Computer DNS Name: vcsa.mgmt.local

 

notice that the script acknowledges that it is going to join to join AD with the computer name vcsa.mgmt.local. this is precisely what we want.