This guide describes the process for installing a Puppet Enterprise master and agent. A master is the node that controls configuration information. An agent is the node that the master controls, such as a Windows machine. The two communicate via HTTPS with client verification. You can find out more about master and agent architecture in the Puppet architecture documentation.
Puppet masters can only run on *nix machines, but Windows machines can run as Puppet agents. For this reason, this guide shows you how to use a Windows machine to install a Puppet master on a Linux server and then install a Puppet agent on your Windows machine. In total you will:
- Step 1: Prep Your System
- Step 2: Download the Puppet Enterprise Master Package
- Step 3: Install the Puppet Master on Your Linux Machine
- Step 4: Install a Puppet Agent on the Windows Machine
Before you begin
To perform these steps, you’ll need a Windows machine and a Linux server. The following examples use a Linux server running Red Hat Enterprise Linux (RHEL) 6.
Your Linux machine (aka the Puppet master) will need:
- A designated hostname.
- A fully qualified domain name (FQDN).
- 6GB of RAM and 4 cores. See PE hardware recommendations.
- Accessibility over port 3000.
- The ability to log in as the root user, or as a user who has sudo privileges.
Step 1: Prep your Windows system
On your Windows machine:
- If you don’t already have an SSH client installed, install one. The following example uses Putty.
- If you don’t already have an SFTP client installed, install one. Popular clients include FileZilla and WinSCP.
Step 2: Download the Puppet Enterprise master package
Before you can manage a machine running the Windows operating system, you must first install the Puppet master on a Linux server, because the Puppet master cannot run on Windows.
After you install the Puppet master, you will install PE on your Windows machine.
- First, on your Windows machine, download the PE Master installer package for EL (RHEL, CentOS, Scientific Linux, Oracle Linux) version 6 from the Puppet Enterprise download page.
Step 3: Install the Puppet master on Your Linux machine
- On your Windows machine, using your SFTP client, copy the PE Master installer package onto the Linux machine you’ve designated to be your Puppet master.
- On your Windows machine, using your SSH client, ssh into your Linux machine, and enter the hostname or IP address and port, as shown in the following example.
- When prompted in the terminal, log into your Linux machine as the
rootuser, or as a user that has sudo privileges.
- Your Linux machine should have a designated hostname. To verify the hostname, run
- To access the web-based installer used by PE, make sure port 3000 is accessible.
Tip: Although the method for doing so depends on both the OS and cloud/virtualization platform you’re using, you can ensure this port is open by disabling
iptables, as shown in the following example.
- Extract the PE installer tarball by running,
tar -xvf puppet-enterprise-2015.2.0-*.
- Move into the installer directory by running,
- Start the Puppet Enterprise installation script. Run
- Guided Installation information will be displayed. When prompted, answer
yto install the necessary packages to perform a guided installation. A message says, “Installing setup packages,” and then another message tells you to go to a URL in your browser. For example, “https://master.inf.puppetlabs.demo:3000”.
- Copy the URL provided by the installer, and paste it into your browser. When prompted, click Let’s get started!.
- Choose a deployment architecture. These setup instructions assume a monolithic installation. For more information, refer to the installation overview.
Note: From this point the examples will refer to your Linux Machine as the Puppet master.
- In the corresponding fields, enter your Puppet master’s FQDN and alias, as below.
And then add a console admin password.
Important: Your Puppet agents will identity the Puppet master via its alias, so you must identify this correctly. The default is “puppet”.
- Click Submit.
- In the Confirm the plan screen, verify that the choices are correct, and click Continue.
- Puppet Enterprise verifies that your system meets all of the prerequisites. If not, you can use the Log View toggle to check the log. When it’s finished, click Deploy now.
Note: The installer takes several minutes to complete.
- Click Start using Puppet Enterprise.
- Log in with the console admin password you provided during installation. The user name is “admin”.
Congratulations! You have successfully installed the Puppet Enterprise master!
See your node in the web UI
When you log into the web UI, you’re taken to the Overview page. This page shows a list of all of the machines that have a PE agent installed on them and are communicating with your Puppet master. The Puppet master itself has an agent installed so that Puppet can keep it configured correctly—that’s why you see it here in this list.
After you install a Puppet agent in the next example, it will check in with the Puppet master, and once you give the OK to have that agent communicate with the Puppet master, the machine that that agent is running on will show up in the Overview list as well.
Step 4: Install a Puppet agent on your Windows machine
In the following steps, you’ll install a Puppet agent on your Windows machine. However, before you can install the agent, you have to configure the Puppet master so that it has the correct agent installer for your system.
- In the console, click Nodes > Classification, and in the PE Infrastructure node group, select the PE_Master node group.
- On the Classes tab, in the Add new class field, enter
windowsand select the architecture that matches your Windows machine.
- Click Add class, and commit changes. At this point you’ve changed the classification of the agent running on the Puppet master, and now want the master “to be in a different state.” In order for puppet to see that you’ve made this change, you can either wait the standard 30 minute interval for the puppet agent to wake up, or you can kick off a puppet run manually on the master. Let’s do that now.
Note: Running 32-bit Puppet agent on a 64-bit Windows system is now deprecated. Update your Puppet installation to the 64-bit platform.
Optional: Manually run Puppet
- Using your SSH client, log into the Puppet master.
- Kick off a Puppet run with
puppet agent -t. This Puppet run will download the Puppet agent for Windows onto your Puppet master.
- On your Windows machine, point your browser at the following URL:
https://<YOUR PUPPET MASTER HOSTNAME>:8140/packages/current/windows-x86_64/puppet-agent-x64.msi. This will download the .msi package you need to install the Puppet agent on your Windows machine.
- On your Windows machine, install the Puppet agent msi, as shown in the following example.
- When prompted about file security, click Run.
- When the setup wizard starts, click Next.
- Accept the Licence Agreement, and click Next.
- Enter the FQDN of your Puppet master, and click Next.
- When it’s ready to install, click Install.
- When the setup wizard completes, click Finish.
- Run PowerShell as an administrator.
- On the PowerShell command line, kick off a Puppet run using
puppet agent -t.
Imperative: Sign your node certificate
Whether you run Puppet manually, or wait for it to run as part of the regular 30 minute run, on first installing an agent, a certificate signing request (CSR) is created. You must sign the certificate for that agent before the install is complete and the node can be managed.
- In your brower, return to the PE console, and click Nodes.
- On the Nodes page, click the Unsigned certificates tab.
- In the list of node names, locate your Windows machine and click Accept.
Now that you’ve finished installing PE and a Windows agent, you’re ready to see what you can do with Puppet. Go to Managing Windows configurations to learn how to automate managing services, scheduling tasks, managing users and groups, and more. See Installing and using Windows modules to take advantage of pre-existing modules—essentially, Puppet code solutions—that jump-start additional automation tasks.