Table of contents
1.
Introduction
2.
Checking Prerequisites
2.1.
Supported Operating System
2.2.
Java Support
2.3.
Enabling Puppet platform repository
3.
Installing Puppet Server 
3.1.
Primary server and agent compatibility
3.2.
Controlling the service
4.
About Puppet Server’s Environment
4.1.
Embedded Web Server
4.2.
Certificate Authority Service
5.
Frequently Asked Questions
5.1.
What is Puppet and how does it work?
5.2.
Which script paradigm does Puppet use?
5.3.
Can Puppet Server be installed in Windows?
6.
Conclusion
Last Updated: Mar 27, 2024

Key Points of Puppet Server

Author Neha Chauhan
0 upvote
Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

Introduction

Puppet is a DevOps platform for configuration management. The Puppet server holds all the code for configuration. This configuration code is converted into commands by the Puppet Agent. There is a client-server relationship between the Puppet server and Puppet Agents, where the Puppet server is the master and the puppet agents are the clients.

 Key Points of Puppet Server img

The Puppet server is written in Ruby and Clojure programming languages and it runs on Java Virtual Machine (JVM). Puppet utilizes a declarative model i.e. the user needs to define the state to be configured instead of the steps needed to get there. The catalogs are written in Ruby code. It also provides certificate authority through Clojure.

In this article, we will discuss installation steps for Puppet server and some general information about the Puppet Server.

Checking Prerequisites

Puppet Server runs on Java Virtual Machine so, make sure you have a supported version of Java installed in your system. Puppet server is not supported by macOS. 

Checking prerequisites img

Supported Operating System

The puppet server can run on any x86_64 Linux server with JDK 1.8 or 11. It is supported by the following list of operating systems -

Java Support

Puppet Server versions are tested against the following versions of Java:

Enabling Puppet platform repository

Before installing Puppet Server, we need to enable the Puppet Platform repository. 

📌 Follow these steps for Yum Package management system - 

🟧  Login as root. 

🟧  Run the RPM tool in upgrade mode

sudo rpm -U <PACKAGE_URL>

 

🟧 To identify which Package URL will be used according to your system visit yum.puppet.com
 

📌Follow these steps for Apt Package management system -

🟧  Login as root. 

🟧  Download the package according to the requirements of your system, visit apt.puppet.com.

wget <PACKAGE_URL>

 

🟧  Run the dpkg tool in install mode. 

sudo dpkg -i <FILE_NAME>.deb

 

🟧  Update the apt package list

sudo apt-get update

✅ Your operating system will manually verify the packages.

Installing Puppet Server 

Installing Puppet Server img

After enabling the puppet platform repository, you can download the Puppet server on your device.

⭐Install the Puppet server package.

For Red Hat operating systems: 

yum install puppetserver

 

For Debian and Ubuntu operating systems:

apt-get install puppetserver

 

⭐Start the Puppet Server service, run following command

sudo systemctl start puppetserver

 

⭐Open a new shell to update your PATH. You can also use exec bash to update the path.

✅ Run following command to Check if the Puppet Server is installed correctly, 

puppetserver -v 

 

NOTE: After installing Puppet server you will need to install puppet agents whose configuration you want to control using the Puppet server. The above instructions are only for installing Puppet Server. 

Primary server and agent compatibility

Use the below-given table to verify the compatibility version of the puppet agent and Puppet server.

For Open-source Puppet 

Server

Agent

Puppet 5.x

Agent 5.x

Puppet 6.x

Agent 5.x, Agent 6.x

Puppet 7.x

Agent 6.x, Agent 7.x

For Puppet Enterprise (i.e. the commercial version of Puppet)

Server

Agent

Puppet Enterprise 2017.3 to 2018.1

Agent 5.x

Puppet Enterprise 2019.1 to 2019.8

Agent 5.x, Agent 6.x

Puppet Enterprise 2021.0 to later

Agent 6.x, Agent 7.x


Controlling the service

puppetserver is the name of the Puppet server service. 

Use commands service puppetserver restartservice puppetserver status to start and stop the server.

About Puppet Server’s Environment

Embedded Web Server

Puppet server runs on Java Virtual Machine (JVM). Jetty is an open-source Java-based web server embedded in the JVM. Jetty is responsible for the features that allows the application to launch and run APIs. Puppet server is a Jetty-based web server. You can edit the web server setting from webserver.conf.

Certificate Authority Service img

Certificate Authority Service

To ensure that the communication between the user and the website is authenticated i.e. to ensure that the user is connected to the real website instead of the malicious website that wants to steal the user’s data, a Secure Socket Layer (SSL) certificate is exchanged between the user and website. This SSL certificate is issued by Certificate Authority Service

Puppet Server provides the Certificate Authority Service. It accepts requests from the node to sign the certificate (or certificate signing requests (CSR)) and servers to the node, the certificate and certificate revocation list (CRL).

The certificates are stored in files with a .pem extension. You can list, sign or revoke the certificates by using the puppetserver ca command.

You can also check about Java Tokens here.

Frequently Asked Questions

What is Puppet and how does it work?

Puppet is a DevOps platform for configuration management. It is a system management tool for automating and centralizing the configuration management process. It uses a declarative model based approach, that is, in Puppet, we describe the state of the system and not the steps needed to get there. It uses a Domain Specific Language (DSL) called the Puppet Code.

Which script paradigm does Puppet use?

Puppet uses the client-server script paradigm with a primary server called the master and many agent servers called nodes. 

Can Puppet Server be installed in Windows?

No. Puppet Server can only be installed in a Linux environment. However, we can create a linux environment using a virtual machine in a windows system to use the Puppet server. 

Conclusion

Yay! You have come to the end of this blog. In this blog, we discussed the steps to install Puppet server, along with the system prerequisites and also looked at how to control Puppet server’s service. Later on we discussed Jetty-web server being embedded in the Puppet server’s JVM. We ended this article by discussing the certificate authority service of Puppet Server. 

Do not stop learning! We recommend you read some of our articles on Puppet -

🔥 Ansible vs Puppet

🔥 Overview of Puppet Server

🔥 Overview of Puppet Database

Head to the Guided Path on the Coding Ninjas Studio and upskill in Data Structures and AlgorithmsCompetitive ProgrammingSystem Design, and many more courses.

If you want to Practice top Coding Problems, attempt mock tests, or read interview experiences, head to the Coding Ninjas Studio, our practice platform.

We wish you Good Luck!🎈 Please upvote our blog 🏆 and help other ninjas grow.

Live masterclass