This post is based on RHEL 6. Follow the steps given below to set up the server.

Install Dependencies:

RHEL has dependencies for installing the puppet server. First, you need to enable the puppet yum repository using the following command.

sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm

Install puppet server

Install puppet server using the following command.

sudo yum install puppet-server

Optionally, if you want to install the latest version of puppet server, you can run the following command.

sudo puppet resource package puppet-server ensure=latest

FQDN and hostname

Your puppet server should have a full qualified domain name (FQDN) and a hostname that should be resolvable by the client nodes. If you do not have a DNS server in place, you can set your servers IP address as the hostname.

In RHEL, you can make the hostname changes in /etc/sysconfig/network file. The network file with the IP as hostname will look like the following

[ec2-user@172 ~]$ cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=172.0.0.99
NETWORKING_IPV6=no
NOZEROCONF=yes
[ec2-user@172 ~]$ 

Configure CA server

Puppet agent master architecture works on the concept of SSL certificates. So you need a Certificate Authority (CA) server to sign the requests from the client nodes. To do this, ou can configure the CA server on the same node as a puppet server, or if you have multiple puppet servers, you can have a dedicated server as a CA server.

Execute the following command to set up the certificates. Once you see the message “Notice: Starting Puppet master version “, press ctrl + Q to stop the server.

sudo puppet master --verbose --no-daemonize