Forge Home


Manage installation of VMware Tools via the archive distributed with vSphere, either via Puppet or HTTP.


2,769 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 4.0.0 (latest)
  • 3.0.1
  • 3.0.0
  • 2.4.1
  • 2.4.0
  • 2.3.0
  • 2.2.3
  • 2.2.2
  • 2.2.1
  • 2.2.0
  • 2.1.2
  • 2.1.1
  • 2.1.0
  • 2.0.1
  • 2.0.0
  • 1.4.1
  • 1.4.0
  • 1.3.1
  • 1.3.0
  • 1.2.0
  • 1.1.0
  • 1.0.1
  • 1.0.0
  • 0.4.3
  • 0.4.2
  • 0.4.1
  • 0.4.0
  • 0.3.1
  • 0.3.0
  • 0.2.5
  • 0.2.4
  • 0.2.3
  • 0.2.2
  • 0.2.1
  • 0.2.0
  • 0.1.2 (deleted)
  • 0.1.1 (deleted)
  • 0.1.0 (deleted)
  • 0.0.5 (deleted)
  • 0.0.4 (deleted)
  • 0.0.3 (deleted)
  • 0.0.2 (deleted)
  • 0.0.1 (deleted)
released Jan 27th 2020
This version is compatible with:
  • Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x
  • Puppet >=5.0.0 <7.0.0
  • ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'CraigWatson1987-vmwaretools', '4.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add CraigWatson1987-vmwaretools
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install CraigWatson1987-vmwaretools --version 4.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



CraigWatson1987/vmwaretools — version 4.0.0 Jan 27th 2020


Build Status Puppet Forge Forge Endorsement Forge Downloads

Table of Contents

  1. Overview - What is the puppet-vmwaretools module?
  2. Module Description - What does the module do?
  3. Setup - The basics of getting started with puppet-vmwaretools
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing
  6. Limitations - OS compatibility, etc.
  7. Development - Guide for contributing to the module


This module manages the installation and upgrade of VMware Tools via the source code tarballs distributed by VMware.

Module Description

This module is designed to replace both the OSP packages provided by VMware's repositories and also the open-vm-tools package. The module is O/S independent (tested on Ubuntu and Red Hat systems).

The tarballs are transferred to the target by either HTTP download or Puppet filebucket (the default mechanism), and then uncompressed and installed via the archive's Perl installation script.

Upgrading of currently installed VMware Tools packages is also supported - the module obtains the currently-installed VMware Tools version via a custom fact, and only deploys the tarball if a version mismatch occurs or if VMware Tools is not installed on the target system.


What puppet-vmwaretools affects

  • Compares installed version with the configured version via the vmwaretools fact
  • Transfer the VMware Tools archive to the target agent (via Puppet or HTTP)
  • Untar the archive and run (warning: this installer is run with the -d flag to accept all default answers).
  • Removes several packages, see params.pp for the complete list.

Setup Requirements

  • Perl must be installed on the target systems in order to run the VMware Tools installer - installation of Perl is not handled by the module.
  • Pluginsync must be enabled, due to the vmwaretools_version custom fact distributed with this module. If the module cannot access the fact, the Puppet run will fail.
  • As of version 1.0.0, the module requires the PuppetLabs stdlib module module to be available within your Puppet code.

Beginning with puppet-vmwaretools

To accept default class parameters:

include vmwaretools


The source distribution mechanism can be customised by declaring the module with archive_url and archive_md5 parameters (default is to use Puppet filebuckets).

To specify a non-default version, working directory and HTTP URL (other variables can be viewed and/or modified in manifests/init.pp):

class { 'vmwaretools':
  version     => '8.6.5-621624',
  working_dir => '/tmp/vmwaretools',
  archive_url => 'http://server.local/my/dir',
  archive_md5 => '9df56c317ecf466f954d91f6c5ce8a6f',

To stop vmwaretools from trying to install the development packages, Perl package, or curl package use the following paramters to disable their management with this module:

  • manage_dev_pkgs set to false to prevent development packages being managed
  • manage_perl_pkgs set to false to prevent Perl packages being managed
  • manage_curl_pkgs set to false to prevent curl packages being managed




  • Detects any existing VMware Tools installations and, if found, reports the installed version.




  • Declares all exec commands run by the module.


  • Handles installing the required tools to compile and install the archive, as well as purging OSP and open-source VMware Tools packages.
  • NOTE: Due to bugs in Puppet's yum provider, the OSP/open-source packages are only marked as absent, not purged.


  • Handles the archive distribution (either places a download script or the archive).


  • O/S-specific and module configuration (e.g. paths to binaries and a boolean variable to control file deployment)


  • Executes -d if the vmci.ko module doesn't exist for the running kernel


  • Handles time synchronisation between the virtual machine and host


Supported Operating Systems

  • Ubuntu/Debian 14.04 and 16.04
  • CentOS/RedHat 6 and 7