Auto-configure vmware-tools at boottime

Submitted by HighKing on Mon, 12/21/2009 - 17:01

When you install a new kernel on a RHEL/CentOS VM, you need to reconfigure the vmware-tools using the '' script. I have created a simple script that does this automagicalliy, so you don't have to be there when the kernel is updated (handy for automatically updating machines).

Place this in a script called 'check-vmware-tools' in /etc/init.d:

# check-vmware-tools
# chkconfig:   - 00 99
# description: Check whether or not the vmware-tools are installed at boot time.
# processname: check-vmware-tools

loadvmxnet() {
        /sbin/rmmod pcnet32
        /sbin/rmmod vmxnet
        /sbin/depmod -a
        /sbin/modprobe vmxnet

case $1 in
    echo -n $"Checking VMware-tools: "
   if [ ! -e /lib/modules/`/bin/uname -r`/misc/vmci.ko ]; then
      echo "Not available, running vmware-config-tools..."
      /usr/bin/ --default && loadvmxnet
     echo "OK"
    echo "Usage: $0 start"
    exit 1

Make it writeable with 'chmod +x /etc/init.d/check-vmware-tools'.
Next is to make it known by chkconfig with 'chkconfig --add check-vmware-tools'.

Now we have done that, we can simply enable it with 'chkconfig check-vmware-tools on'.

On the next boot, this script checks whether or not the vmware-tools are configured for the running kernel (by checking if vmmemctl.ko is in place). If not, it runs ' and reboots after that.

Hope you like it. :-)

Small updates, 23/12/2009:
- It might be a better idea to just check for the vmxnet driver instead of the ballooning driver which you might not even use. Changed vmmemctl.ko to vmxnet.ko.
- In the previous version, it rebooted after running This has now changed to simply loading the vmxnet driver.

Some people might have noticed that builds a new initrd-image. The only thing that is changed in that initrd-image is the vmxnet driver that had been added. This is probably to make sure the OS doesn't load the pcnet32 driver. A reboot is not necessary.