Setup Puppet Master and Puppet Agent on CentOS 8

How to Setup Puppet Master and Agent on CentOS 8

Puppet is an open source configuration management and server automation framework. Puppet can run on all Linux/unix and Microsoft Windows systems. It allows you to manage and perform administrative tasks and the configuration of multiple systems from one master server.

In this article, you will learn how to install Puppet on CentOS 8. I will install and configure a CentOS 8 server as a puppet ‘master’, and the other one as an ‘agent’.

Prerequisites

  • 2 CentOS 8 servers
    • 0.0.14      master.theskillpedia.com    4 GB Memory
    • 0.0.15      agent.theskillpedia.com 3 GB RAM
  • Root privileges

What we will do:

  1. Puppet Pre-Installation
  2. Install and Configure Puppet server
  3. Install and Configure Puppet Agent
  4. Verify Puppet Agent Configuration
  5. Create First Puppet Manifest

Step 1 – Puppet Pre-Installation

In this step, we will perform some tasks including installation and configuration on both servers puppet master and puppet agent. We will configure the host’s file, synchronizing time using the NTP server, Disable SELinux, and add the puppet repository to the system.

  1. Configure hosts on both machines by editing the hosts using vim
# vim /etc/hosts

Add the following configuration to the end of the line.

10.0.0.14     master.theskillpedia.com
10.0.0.15    agent.theskillpedia.com
host-file-for-puppet
host-file-for-puppet
  1. Now test using the ping command on both machines to verify the connectivity
# ping master.theskillpedia.com
# ping agent.theskillpedia.com
  1. Configure NTP Server. It’s very important to keep in synchronization the time between master and agent server. Install the chrony packages on both servers using the dnf command.
# dnf -y install chrony
  • Edit the /etc/chrony.conf file and add, change, or remove the following.

server ntp1.jst.mfeed.ad.jp iburst
server ntp2.jst.mfeed.ad.jp iburst
server ntp3.jst.mfeed.ad.jp iburst

  • To enable agent to connect to the chrony on puppet master, change chrony.conf :
allow 10.0.0.0/24
  • Adjust Firewall Setting

# firewall-cmd –add-service=ntp –permanent 
success
# firewall-cmd –reload 

success

  • Restart the NTP service:
# systemctl enable chronyd.service

# systemctl restart chronyd.service
  1. Disable SELinux. Edit the SELinux configuration using vim.
# vi /etc/sysconfig/selinux

Change the SELINUX value to ‘disabled’.

SELINUX=disabled

Save and exit.

  1. Add Puppet Repository on both machines using the rpm command.
# rpm –Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-8.noarch.rpm
  1. When it is complete, reboot both servers.
reboot

Step 2 – Install and Configure Puppetserver

  1. Let us install the puppetserver on the master.theskillpedia.com server using the dnf
# dnf -y install puppetserver
  1. Configure the max memory allocation of 2GB for puppetserver by editing the ‘puppetserver’ configuration.
# vi /etc/sysconfig/puppetserver

change/verify the line as below.

JAVA_ARGS="-Xms2g –Xmx2g "

Save and exit.

  1. Go to the puppet configuration directory and edit the ‘puppet.conf’ file.
# cd /etc/puppetlabs/puppet
# vi puppet.conf

Add the following configuration.

[master]
 dns_alt_names=master.theskillpedia.com,puppet
 
main]
certname = master.theskillpedia.com
server = master.theskillpedia.com
environment = production
runinterval = 1h

Save and exit.

  1. Now start the puppetserver and enable it to launch at boot time.
# systemctl start puppetserver
# systemctl enable puppetserver

The Puppetserver installation and configuration has been completed successfully.

  1. If you’re using firewalld on your system, add the puppetserver port to the list using the firewall-cmd following command.
# firewall-cmd --add-port=8140/tcp --permanent
# firewall-cmd --reload

Step 3 – Install and Configure Puppet Agent

  1. Install the puppet agent on the ‘agent.theskillpedia.com’ server using the dnf command.
# dnf install -y puppet-agent
  1. After the installation is complete, go to the puppet configuration directory and edit the puppet.conf file.
# cd /etc/puppetlabs/puppet
# vi puppet.conf

Paste the following configuration.

[main]
certname = agent.theskillpedia.com
server = master.theskillpedia.com
environment = production
runinterval = 1h

Save and exit.

  1. Register the puppet agent to the puppet master by runing the following command on the puppet agent shell.
# /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

The puppet agent is now running on the server, and it’s attempting to register itself to the puppet master.

  1. Now back to the puppet master shell and run the following command.
# /opt/puppetlabs/bin/puppet cert list

You will get the pending Certificate Signing Request (CSR) from the puppet agent server ‘agent.theskillpedia.com’.

  1. Sign the certificate using the command below.
# /opt/puppetlabs/bin/puppet cert sign agent.theskillpedia.com

The result should be similar to the following:

puppet-cert-sign-agent
puppet-cert-sign-agent

The puppet agent is now running on the system, and the certificate for the agent has been signed by the puppet master.

Step 4 – Verify the Puppet Agent Configuration

  1. After the puppet master signed the certificate file for the agent, run following command on the puppet agent to verify the configuration.
# /opt/puppetlabs/bin/puppet agent --test

And you will get the result as shown below.

puppet-agent-test
puppet-agent-test

 

The output indicates that the Puppet agent pulled the configuration from the puppet master and applied to the server without any error.

Step 5 – Create First Manifest

  1. Let us create a simple manifest for Apache httpd web server installation for testing. On the puppet master server, go to the ‘/etc/puppetlabs/code/’ directory and create the new manifest file ‘site.pp’ using vim.
# cd /etc/puppetlabs/code/environments/production/manifests

# vi site.pp
node 'agent.theskillpedia.com' {
     package { 'httpd':
         ensure  => "installed",
     }
     service { 'httpd':
         ensure => running,
     enable => true
     }
 }

Save and exit.

  1. Open the puppet agent server shell and run the command below.
# /opt/puppetlabs/bin/puppet agent --test

The command will retrieve new manifest configuration file from the puppet master and then apply it to the agent server.

  1. Open your web browser and type the IP address of the puppet agent, http://10.0.0.15/. You will get the default HTTP page as below.
puppet-manifet-example

The httpd web server has been installed using the puppet manifest. Installation and configuration of the Puppet Master and Puppet Agent on CentOS 8 has been completed successfully.

 

October 11, 2019

0 responses on "Setup Puppet Master and Puppet Agent on CentOS 8"

Leave a Message

Featured Testimonial

I think the course was excellent for someone like me (Web Designer working on always improving creativity and design process) …..  Thanks for all your great work and your dedication to sharing your skills and knowledge with us. Hats off to The Skill Pedia!Read more

Karen Cadman

Sr. Web Designer

Popular Courses

About The SkillPedia

The Skill Pedia is a platform for online training. It offers great learning experience for learners by offering features such as Interactive Videos, Interaction with Trainer, Assignments, Rich Audio Visuals and Handouts.

The Course Completion Certificate generated automatically based on your performance after the course is complete is an edge.

For Trainers, it is a platform for sharing your Skills which may be in the form of videos, slides, handouts, e-books or even consulting and get up to 85% of the fee you decide for the course.

The Skill Pedia - Learn or Teach a Skill

TheSkillPedia Tweets

top
WhatsApp chat
X