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
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
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 https://yum.puppet.com/puppet7-release-el-7.noarch.rpm
Your execution output should be similar to one below:
Retrieving https://yum.puppet.com/puppet7-release-el-7.noarch.rpm
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
==================================================================================================================================================================
Installing:
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:1.8.0.272.b10-1.amzn2.0.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.