Install Puppet Server 7 on Amazon Linux 2

Posted on 309 views

Puppet is an open source software configuration management tool developed by Puppet Labs Limited. This tool is created to help software developers and system engineers deploy, configure and manage both systems and applications. As a user you define the state of your infrastructure and Puppet will work towards achieving the desired state.

In this guide we will perform installation of Puppet server 7 and Client on an Amazon Linux 2 system. The Puppet agent is intended to run on every server in the IT infrastructure, that is to be managed. By using Puppet you significantly reduce the amount of time spend in manual system and Infrastructure operations. Puppet uses a Master Slave architecture where the Master and Slave communicates through a secure encrypted channel.

Recommended server requirements:

  • 2-4 processor cores
  •  At least 4 GB of RAM

Step 1: Update System

I recommend you perform this installation on a newly installed Amazon Linux server.

Login to your Amazon Linux 2 system:

$ ssh [email protected]
       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
13 package(s) needed for security, out of 36 available
Run "sudo yum update" to apply all updates.

Update all installed packages.

sudo yum -y update

We recommend you perform a reboot after upgrading your system:

sudo reboot

Step 2: Add Puppet repository

Run the following commands to add Puppet server repository to your Amazon Linux 2 server:

sudo rpm -Uvh

Your execution output should be similar to one below:

warning: /var/tmp/rpm-tmp.610l3o: Header V4 RSA/SHA256 Signature, key ID 9e61ef26: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:puppet7-release-7.0.0-2.el7      ################################# [100%]

Puppet Server is a required application that runs on the Java Virtual Machine (JVM) on the primary server. All the packages required are contained in the repository we just added.

Step 3: Install Puppet Server on Amazon Linux 2

Puppet server controls the configuration information for one or more managed agent nodes. We need to install Puppet Server packages on Amazon Linux 2 server by running the following commands in the terminal.

sudo yum install puppetserver

Review all dependencies and start the installation:

Dependencies Resolved

 Package                                         Arch                       Version                                          Repository                      Size
 puppetserver                                    noarch                     7.0.2-1.el7                                      puppet7                         62 M
Installing for dependencies:
 avahi-libs                                      x86_64                     0.6.31-20.amzn2                                  amzn2-core                      61 k
 copy-jdk-configs                                noarch                     3.3-10.amzn2                                     amzn2-core                      21 k
 cups-libs                                       x86_64                     1:1.6.3-51.amzn2                                 amzn2-core                     356 k
 java-1.8.0-openjdk-headless                     x86_64                     1:                      amzn2-core                      33 M
 javapackages-tools                              noarch                     3.4.1-11.amzn2                                   amzn2-core                      73 k
 libxslt                                         x86_64                     1.1.28-6.amzn2                                   amzn2-core                     240 k
 lksctp-tools                                    x86_64                     1.0.17-2.amzn2.0.2                               amzn2-core                      88 k
 pcsc-lite-libs                                  x86_64                     1.8.8-7.amzn2                                    amzn2-core                      35 k
 puppet-agent                                    x86_64                     7.3.0-1.el7                                      puppet7                         25 M
 python-javapackages                             noarch                     3.4.1-11.amzn2                                   amzn2-core                      31 k
 python-lxml                                     x86_64                     3.2.1-4.amzn2.0.2                                amzn2-core                     1.0 M
 tzdata-java                                     noarch                     2020d-2.amzn2                                    amzn2-core                     189 k

Transaction Summary
Install  1 Package (+12 Dependent packages)

Total download size: 122 M
Installed size: 202 M
Is this ok [y/d/N]: y

Import required GPG keys:

Total                                                                                                                              66 MB/s | 122 MB  00:00:01
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppet7-release
Importing GPG key 0xEF8D349F:
 Userid     : "Puppet, Inc. Release Key (Puppet, Inc. Release Key) "
 Fingerprint: 6f6b 1550 9cf8 e59e 6e46 9f32 7f43 8280 ef8d 349f
 Package    : puppet7-release-7.0.0-2.el7.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-puppet7-release
Is this ok [y/N]: y
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-2025-04-06-puppet7-release
Importing GPG key 0x9E61EF26:
 Userid     : "Puppet, Inc. Release Key (Puppet, Inc. Release Key) "
 Fingerprint: d681 1ed3 adee b844 1af5 aa8f 4528 b6cd 9e61 ef26
 Package    : puppet7-release-7.0.0-2.el7.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-2025-04-06-puppet7-release
Is this ok [y/N]: y

By default, Puppet Server is configured to use 2GB of RAM. However, if you want to experiment with Puppet Server on a VM, you can safely allocate as little as 512MB of memory.

To change the Puppet Server memory allocation, you can edit the init config file.

$ sudo vim /etc/sysconfig/puppetserver
# Example
JAVA_ARGS="-Xms1g -Xmx1g"

Once the server package is installed start the Puppet server service on Amazon Linux 2 machine.

sudo systemctl start puppetserver

Check server status:

$ systemctl status puppetserver
● puppetserver.service - puppetserver Service
   Loaded: loaded (/usr/lib/systemd/system/puppetserver.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-02-08 20:34:01 UTC; 1min 1s ago
  Process: 2688 ExecStart=/opt/puppetlabs/server/apps/puppetserver/bin/puppetserver start (code=exited, status=0/SUCCESS)
 Main PID: 2713 (java)
    Tasks: 44 (limit: 4915)
   CGroup: /system.slice/puppetserver.service
           └─2713 /usr/bin/java -Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger -XX:OnOutOfMemoryError="kill -9 %p" -XX:ErrorFi...

Feb 08 20:33:28 amazon-linux systemd[1]: Starting puppetserver Service...
Feb 08 20:34:01 amazon-linux systemd[1]: Started puppetserver Service.

Confirm the version of Puppet Server installed on Amazon Linux 2 server:

$ puppetserver -v
puppetserver version: 7.0.2

Enable the service to start at system boot:

sudo systemctl enable puppetserver

For Puppet Agents installation follow the steps in install agents guides. The next link to visit after the installation of Puppet Server on Amazon Linux 2 is Puppet configuration settings.

Gravatar Image
A systems engineer with excellent skills in systems administration, cloud computing, systems deployment, virtualization, containers, and a certified ethical hacker.