Installing Puppet on Windows
This documentation applies to Puppet versions ≥ 2.7.6 and Puppet Enterprise ≥ 2.5. Earlier versions may behave differently.
Download the Puppet installer for Windows here:
If you are using Puppet Enterprise, use the PE-specific installer; otherwise, use the standard installer.
Puppet runs on the following versions of Windows:
- Windows Server 2003 and 2003 R2
- Windows Server 2008 and 2008 R2
- Windows 7
The Puppet installer bundles all of Puppet’s prerequisites. There are no additional software requirements.
Puppet Master Requirements
Windows nodes cannot serve as puppet master servers.
- If your Windows nodes will be fetching configurations from a puppet master, you will need a *nix server to run as puppet master at your site.
- If your Windows nodes will be compiling and applying configurations locally with puppet apply, you should disable the puppet agent service on them after installing Puppet. See Running Puppet on Windows for details on how to stop the service.
Version note for PE users: Your puppet master should be running PE 2.5 or later. On PE 2.0, the
pe_accountsmodules cause run failures on Windows nodes. If you wish to run Windows agents but have a PE 2.0 puppet master, you can do one of the following:
- Upgrade your master to PE 2.5 or later
- Remove those modules from the console’s default group
- Manually hack those modules to be inert on Windows.
To install Puppet, simply download and run the installer, which is a standard Windows .msi package and will run as a graphical wizard.
The installer must be run with elevated privileges. Installing Puppet does not require a system reboot.
The only information you need to specify during installation is the hostname of your puppet master server: (If you are using puppet apply for node configuration instead of a puppet master, you can just enter some dummy text here.)
Note that you can download and install Puppet Enterprise on up to ten nodes at no charge. No licence key is needed to run PE on up to ten nodes.
Once the installer finishes:
- Puppet agent will be running as a Windows service, and will fetch and apply configurations every 30 minutes. You can now assign classes to the node on your puppet master or console server. Puppet agent can be started and stopped with the Service Control Manager or the
sc.exeutility; see Running Puppet on Windows for more details.
The Start menu will contain a Puppet folder, with shortcuts for running puppet agent manually, for running Facter, and for opening a command prompt for use with the Puppet tools. See Running Puppet on Windows for more details. The Start menu folder also contains documentation links.
For automated deployments, Puppet can be installed unattended on the command line as follows:
msiexec /qn /i puppet.msi
You can also specify
/l*v install.txt to log the progress of the installation to a file.
The following public MSI properties can also be specified:
|MSI Property||Puppet Setting||Default Value|
||n/a||Version-dependent, see below|
msiexec /qn /i puppet.msi PUPPET_MASTER_SERVER=puppet.acme.com
Puppet can be upgraded by installing a new version of the MSI package. No extra steps are required, and the installer will handle stopping and re-starting the puppet agent service.
When upgrading, the installer will not replace any settings in the main puppet.conf configuration file, but it can add previously unspecified settings if they are provided on the command line.
Puppet can be uninstalled through Windows’ standard “Add or Remove Programs” interface, or from the command line.
To uninstall from the command line, you must have the original MSI file or know the ProductCode of the installed MSI:
msiexec /qn /x [puppet.msi|product-code]
Uninstalling will remove Puppet’s program directory, the puppet agent service, and all related registry keys. It will leave the data directory intact, including any SSL keys. To completely remove Puppet from the system, the data directory can be manually deleted.
What Gets Installed
In order to provide a self-contained installation, the Puppet installer includes all of Puppet’s dependencies, including Ruby, Gems, and Facter. (Puppet redistributes the 32-bit Ruby application from rubyinstaller.org).
These prerequisites are used only for Puppet and do not interfere with other local copies of Ruby.
Unless overridden during installation, Puppet and its dependencies are installed into the standard Program Files directory for 32-bit applications.
For Puppet Enterprise, the default installation path is:
|OS type||Default Install Path|
For open source Puppet, the default installation path is:
|OS type||Default Install Path|
The program files directory can be located using the
PROGRAMFILES environment variable on 32-bit versions of Windows or the
PROGRAMFILES(X86) variable on 64-bit versions.
Puppet’s program directory contains the following subdirectories:
|bin||scripts for running Puppet and Facter|
|service||code to run puppet agent as a service|
|sys||Ruby and other tools|
Puppet stores its settings (
puppet.conf), manifests, and generated data (like logs and catalogs) in its data directory. Puppet’s data directory contains two subdirectories:
$confdir) contains configuration files, manifests, certificates, and other important files
$vardir) contains generated data and logs
When run with elevated privileges, the data directory is located in
COMMON_APPDATA\PuppetLabs\puppet; see below for more about the
COMMON_APPDATA folder. When run without elevated privileges, the data directory will be a
.puppet directory in the current user’s home folder. Puppet on Windows should usually be run with elevated privileges.
COMMON_APPDATA folder contains non-roaming application data for all users. Its location varies by Windows version:
Since the CommonAppData directory is a system folder, it is hidden by default. See http://support.microsoft.com/kb/812003 for steps to show system and hidden files and folders.
For more details about using Puppet on Windows, see: