How To Install Puppet On CentOS 8 / RHEL 8

IP Address:

# Pupper Server Configuration
dns_alt_names = puppetserver,puppetserver.itzgeek.local # Puppet Agent Configuration
certname = puppetserver.itzgeek.local
server = puppetserver.itzgeek.local
runinterval = 30m

Start Puppet Server

firewall-cmd --permanent --add-port=8140/tcp firewall-cmd --reload

Install & Configure Puppet Agent

Add Repository

puppetserver ca sign --all

JAVA_ARGS=”-Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger”

If needed, change the system timezone as well.
If you have multiple signing requests from nodes, you can sign all the requests in one command.
If you need to set up NTP Client, then:

Puppet client

If you need to set up NTP Client, then:


Install NTP

The Puppet agent uses the hostname to communicate with the Puppet Server. So, make sure agent nodes can resolve the hostname of the Puppet Server with the help of /etc/hosts file or DNS server.

server = puppetserver.itzgeek.local
certname = client.itzgeek.local
runinterval = 30m

This guide helps you to install Puppet on CentOS 8 / RHEL 8.
puppetserver ca list

READ: How To Configure NTP Client Using Chrony
READ: How to Change Timezone in CentOS 8 / RHEL 8
To change the value of memory allocation, edit the below file.


systemctl start puppetserver systemctl enable puppetserver


rpm -Uvh

Install Agent

The timing of the master and client nodes should be accurately in sync with the NTP server because the Puppet server will be acting as the certificate authority.
Run the below command on the agent node to make an initial connection. You can ignore the warnings/errors.
puppet agent -t

puppetserver ca revoke –certname AGENT_NAME

Here, we will configure a puppet in Server/agent architecture.
Puppet Server is the server software that runs on the master node. Puppet Server controls the configurations of managed nodes (puppet-agent).
JAVA_ARGS=”-Xms512m -Xmx512m -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger”

Configure Puppet Server

Puppet is available for Linux, Mac, BSD, Solaris, and Windows operating systems. It is written in “Ruby” language and released under Apache License,
For 512MB, use the below settings.
rpm -Uvh

Install Puppet

For this demo, I will allocate 512MB of memory.
READ: How To Configure NTP Server Using Chrony
vi /etc/puppetlabs/puppet/puppet.conf

vi /etc/puppetlabs/puppet/puppet.conf

puppetserver ca list --all

puppetserver ca setup

Host Name: puppetserver.itzgeek.local
We must approve a certificate request coming from each node. Agent nodes will request certificates for the first time if they attempt to run.
Start puppet agent on the node and make it start automatically on system boot.
yum install -y puppetserver

Memory Allocation

puppetserver ca sign –certname client.itzgeek.local

Puppet is an open-source configuration management tool that helps us to automate IT infrastructure, including provisioning, configuration management, patching of hundreds of client systems from the central location.
Host Name: client.itzgeek.local

Sign Agent Node Certificate on Master Server

Replace the <AGENT_NAME> with your client hostname.
Start and enable the Puppet Server.
puppet resource service puppet ensure=running enable=true

Puppet agent periodically sends facts to the puppet master and request a catalog. The master compiles and returns that particular node’s catalog, using the sources of information it has access to.
vi /etc/sysconfig/puppetserver

puppet agent --test

Set server value as per your Puppet server hostname. In my case, the server is puppetserver.itzgeek.local and certname is my client hostname (client.itzgeek.local).
Pupper is configured in an agent-master architecture. In this architecture, managed nodes run the puppet agent software, as a background service. On another hand, one or more servers run the master application, i,e. Puppet server.
Operating System: CentOS 8
If you need to set up NTP Server, then:
IP Address: