How to Install Puppet on RHEL 8 / CentOS 8

IT admins rely on Puppet to manage complex deployments every day. If your network is built on Red Hat systems, you’re going to need to install Puppet on RHEL 8 / CentOS 8. Puppet Labs provides a repository and packages, so the whole thing should be relatively hassle free.

In this tutorial you will learn:

  • How to Enable the Puppet Repo
  • How to Install Puppet for Servers/Puppet Masters
  • How to Update Servers/Puppet Masters
  • How to Install Puppet for Clients
  • How to Update Puppet Clients

Install Puppet on RHEL 8 / CentOS 8

Install Puppet on RHEL 8 / CentOS 8.

Software Requirements and Conventions Used

Software Requirements and Linux Command Line Conventions
Category Requirements, Conventions or Software Version Used
System RHEL 8 / CentOS 8
Software Puppet
Other Privileged access to your Linux system as root or via the sudo command.
Conventions # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
$ – requires given linux commands to be executed as a regular non-privileged user

Enable the Puppet Repo

Enable the Puppet Repo on RHEL 8 / CentOS 8

Enable the Puppet Repo on RHEL 8 / CentOS 8.

Puppet Labs provides a repository for RHEL and CentOS systems. The first step in setting up Puppet for either client or server machines is enabling the repository. It’s available in the form of a convenient RPM, so go ahead and install it with DNF.

# dnf install https://yum.puppetlabs.com/puppet-release-el-8.noarch.rpm

Install Puppet for Servers/Puppet Masters

Install Puppet Server on RHEL 8

Install Puppet Server on RHEL 8.

The process for installing Puppet on your servers/Puppet Master instances is a bit different than the machines that you’ll be managing. Begin by installing the puppetserver package.



# dnf install puppetserver

Update Servers/Puppet Masters

Update Puppet Server on RHEL 8

Update Puppet Server on RHEL 8.

Next, it’s best to have Puppet update itself to the absolute latest version. You can achieve this with a built-in command that tells puppet to ensure that it’s running the latest version.

# puppet resource package puppetserver ensure=latest

Now, go ahead and start your Puppet server with systemd

# systemctl start puppetserver

You can always enable it at start too.

# systemctl enable puppetserver

Install Puppet for Clients

Install Puppet Client on RHEL 8

Install Puppet Client on RHEL 8.

On your client machines, you only need to install the puppet package itself. Use dnf get it.



# dnf install puppet

Update Clients

Update Puppet Client on RHEL 8

Update Puppet Client on RHEL 8.

Just like with the server, you’re going to need to make sure that your clients are completely up-to-date. You can accomplish this in nearly the same exact way. Only this time, you’re going to target the puppet package.

# puppet resource package puppet ensure=latest

The result will be similar. Now, start up the puppet service.

# systemctl start puppet

Again, enable it at boot.

# systemctl enable puppet

Conclusion

Now, you’re ready to install Puppet and configure your entire deployment. As of right now, these packages are still in beta, so there may be bugs and inconsistencies. This guide is primarily for testing new RHEL 8 deployments. Don’t expect major changes in the process before the release, though. The process will likely remain the same later in RHEL 8’s life cycle.