Free tools Windows power users keep installed
One-click scans. No signup required.
Install Puppet on a VPS by first choosing its role: a Puppet Server is the control plane that compiles and serves catalogs, while a puppet-agent VPS is a managed node that requests and applies those catalogs. Enable Puppet’s official package repository for your exact operating-system release, install the package with the native package manager, start the service, and verify it before configuring certificates. An agent’s first run also requires approval by the certificate authority (CA) on the Puppet Server.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
The commands below follow Puppet’s documented installation flow. Package support is version-specific, so confirm the VPS image against the support matrix before provisioning it.
As an Amazon Associate I earn from qualifying purchases.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Choose the VPS role before installing anything
Do not install both packages by default. Decide whether this VPS will manage other machines or be managed by an existing Puppet installation.
Puppet Server (control plane)
Install puppetserver when this VPS will act as the CA-backed control node. It compiles catalogs from your Puppet code, signs agent certificates, and serves catalogs to one or more agents. The server therefore needs enough memory for the Java process and for catalog compilation.
#1 Best Overall
Puppet agent (managed node)
Install puppet-agent when another Puppet Server will configure this VPS. The agent contacts the server, obtains its catalog, and applies the declared configuration locally. An agent-only VPS does not compile catalogs or sign certificates.
| Decision point | Puppet Server | Agent-only VPS |
|---|---|---|
| Primary role | Control plane and catalog compiler | Managed node that applies catalogs |
| Package | puppetserver |
puppet-agent |
| Memory consideration | 2 GB is the documented default allocation | No Puppet Server Java allocation |
| CA and certificate workflow | Hosts the CA and signs pending agent certificates | Submits a certificate-signing request on first run |
| Catalog work | Compiles and serves catalogs | Fetches and applies catalogs |
| Typical deployment | One control node for many managed nodes | Each VPS that should receive Puppet configuration |
Check Linux support before provisioning the VPS
Puppet’s package availability changes by product and operating-system release. The current support boundary documented for this installation is:
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →| Component | Supported Linux releases listed by Puppet |
|---|---|
| Puppet Server | RHEL 8, 9, and 10; Debian 13; Ubuntu 22.04 and 24.04; SLES 12 SP1 and 15 |
| Puppet agent | Debian 11–13; Ubuntu 22.04, 24.04, and 26.04; RHEL 8–10; Amazon Linux 2023; AlmaLinux 8–10; Rocky Linux 8–10; Oracle Linux 8; SLES 12 and 15 |
These are package-support statements, not a guarantee that every VPS image, CPU architecture, kernel, or cloud image is identical. Check Puppet’s current support table immediately before deployment, especially when selecting a newer distribution release. If a release is outside the listed range, do not assume that the repository contains a compatible package.
Prepare the VPS
Administrative access
Log in with an account that can use sudo or work as root. You will install system packages, start services, edit configuration files, and—on the CA host—sign certificates.
Stable naming and name resolution
Give the Puppet Server a stable fully qualified domain name (FQDN). Agents must resolve that name through DNS or an appropriate /etc/hosts entry. If the master is not named puppet, plan to set the server name explicitly in the agent configuration.
Rank #2
Network and security controls
Allow Puppet service traffic between agents and the server according to your firewall and network design. Puppet’s installation pages do not prescribe one universal firewall policy; the correct rule depends on your topology, address ranges, and any intermediary controls. If SELinux is enabled, apply Puppet’s documented compliance exception for Puppet and the PXP agent rather than disabling SELinux wholesale.
Repository and package provenance
Enable Puppet’s official package repository for the exact distribution and release before running the install command. If your threat model requires provenance checks, verify repository and package signatures with GPG. Pin package versions when you need controlled upgrades instead of silently accepting every future update.
Install Puppet Server on Ubuntu or Debian
- Provision a supported image and update your access. Confirm that the release appears in the Puppet Server support list and that your administrative account can use
sudo. - Enable the official Puppet repository. Select the repository instructions matching the VPS distribution, release, and architecture. Do this before asking APT to install the package.
- Install the server package.
sudo apt-get install puppetserver - Start the service.
sudo systemctl start puppetserver - Open a fresh login shell. Puppet specifically suggests
bash -lon Ubuntu so the expected Puppet command paths are loaded:bash -l - Verify the installed version.
puppetserver -vThe command should print the installed Puppet Server version. If the shell cannot find it, use a new login shell and check the package installation before troubleshooting manifests.
Server memory allocation
Puppet documents a default Puppet Server allocation of 2 GB of RAM. That allocation is a sizing baseline for the Java service, not a promise that a very small VPS can run production workloads comfortably.
For a test virtual machine, Puppet documents reducing the allocation to 512 MB. On Debian and Ubuntu, edit /etc/default/puppetserver; on RHEL-family systems, edit /etc/sysconfig/puppetserver. Set the documented JAVA_ARGS value for a 512 MB allocation, then restart the service. Treat this as an experimentation setting only; it is not a production sizing recommendation.
After changing the file, restart and verify the service:
sudo systemctl restart puppetserver
sudo systemctl status puppetserver
If the service fails after a memory change, restore the previous setting, inspect the service status and logs, and increase the VPS memory rather than repeatedly forcing a small heap.
Install Puppet Server on RHEL-family or SLES systems
- Confirm support and obtain administrative access. Use a supported RHEL release (8–10) or SLES release (12 SP1 or 15) listed for Puppet Server.
- Enable Puppet’s official repository for that release and architecture.
- Install the package with YUM on RHEL-family systems.
sudo yum install puppetserver - Start the service.
sudo systemctl start puppetserver - Open a new login shell and verify.
bash -lpuppetserver -v
SLES uses its platform package tooling for repository and package management. The package name remains puppetserver; follow the repository instructions for the SLES release before installation.
Recommended Free Tools
Install a Puppet agent on a Linux VPS
- Enable the official Puppet repository. Choose the repository matching the agent VPS distribution and release.
- Install
puppet-agentwith the native package manager.
Debian or Ubuntu:sudo apt-get install puppet-agent
RHEL-family, Amazon Linux, AlmaLinux, Rocky Linux, or Oracle Linux:sudo yum install puppet-agent
SLES:sudo zypper install puppet-agent - Make the Puppet binaries available. Add
/opt/puppetlabs/binto the interactive user’sPATH, or call every Puppet binary by its full path. Using the full path avoids ambiguity while you are validating a new installation. - Set the master name when it is not
puppet.sudo /opt/puppetlabs/bin/puppet config set server <MASTER_FQDN> --section mainReplace
<MASTER_FQDN>with the resolvable FQDN of the Puppet Server. Do not include the angle brackets. - Start the agent and enable it.
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true - Run a manual test.
sudo /opt/puppetlabs/bin/puppet agent --testThe first run normally creates and submits a certificate-signing request. A successful run after approval retrieves and applies a catalog.
Approve the agent certificate on the Puppet Server
Puppet uses certificates to authenticate agents to the CA Puppet master. As each Puppet agent runs for the first time, it submits a certificate signing request (CSR) to the CA Puppet master.
- Run the agent test command on the new VPS:
sudo /opt/puppetlabs/bin/puppet agent --test - On the CA host, list pending requests. The legacy Puppet CLI commands documented for this workflow are:
puppet cert list - Check the requested name. Confirm that the certificate name corresponds to the intended VPS. Treat an unexpected name as a DNS, hostname, or provisioning problem; do not sign it blindly.
- Sign the request.
puppet cert sign <NAME>Replace
<NAME>with the exact certificate name shown by the list command.What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. - Run the agent test again.
sudo /opt/puppetlabs/bin/puppet agent --testAfter signing, the agent can authenticate, fetch its catalog, and apply the configuration. Puppet versions may expose newer certificate-management commands, so use the command set that matches the version deployed on your CA host.
Verify each layer in the right order
When installation does not work, test from the bottom of the stack upward. This prevents a manifest problem from being mistaken for a package or network problem.
- Package layer: Confirm that
puppetserver -vworks on a server or that/opt/puppetlabs/bin/puppet --versionworks on an agent. - Service layer: Check
sudo systemctl status puppetserveron a server or rerun the agent service resource command on a node. - Name-resolution layer: Resolve the configured master FQDN from the agent using DNS or the intended
/etc/hostsentry. - Network layer: Confirm that firewall rules permit the Puppet traffic required by your design.
- Certificate layer: On the CA host, list pending requests and sign only the expected agent name.
- Catalog layer: Run
sudo /opt/puppetlabs/bin/puppet agent --testand read the reported catalog or resource error after the lower layers pass.
Troubleshoot common installation failures
The package manager cannot find puppetserver or puppet-agent
The official repository is probably not enabled, is configured for a different release, or does not support the VPS architecture. Recheck the distribution version, repository selection, and package-manager metadata. Do not substitute an unrelated repository simply to make the install command succeed.
Best Value
puppetserver or puppet is “command not found”
On a server, open a new login shell with bash -l. On an agent, add /opt/puppetlabs/bin to PATH or use the full path, such as /opt/puppetlabs/bin/puppet agent --test.
The server service will not start
Check the service status and recent logs, then review the Java memory allocation. A small VPS may not provide the documented 2 GB default comfortably. The 512 MB setting is intended for test VMs; production nodes should be sized for their catalog and agent workload.
The agent cannot contact the master
Verify the configured server value, FQDN resolution, VPS firewall rules, and any cloud security-group rules. If the master is not named puppet, set it explicitly with puppet config set server <MASTER_FQDN> --section main. Fix connectivity before investigating manifests.
The first run remains waiting for approval
That is expected until the CA host signs the CSR. Run puppet cert list on the CA host, verify the requested name, sign it with puppet cert sign <NAME>, and rerun the agent test.
SELinux blocks Puppet activity
Keep SELinux enabled and apply Puppet’s documented compliance exception for Puppet and the PXP agent. Disabling enforcement globally removes a security control and does not address the underlying policy requirement.
Quick Recap
Puppet Server versus agent-only deployment: which fits a VPS?
| Question | Choose Puppet Server | Choose agent-only |
|---|---|---|
| Will this VPS control other nodes? | Yes; it compiles and serves their catalogs. | No; it receives configuration from an existing server. |
| Does it need CA administration? | Yes; it lists and signs pending CSRs. | It submits a CSR and waits for the CA to sign it. |
| What package is installed? | puppetserver |
puppet-agent |
| What is the documented memory allocation? | 2 GB by default; 512 MB is documented for test VMs. | No Puppet Server allocation. |
| How many nodes can it serve? | One or more, subject to sizing and workload. | Only the local VPS is managed by the remote server. |
Operational practices after installation
- Keep every VPS on a Puppet-supported operating-system release and revisit the support table before an OS upgrade.
- Pin package versions when predictable, reviewed upgrades matter; otherwise repository updates can change the installed version during routine maintenance.
- Use DNS or deliberately maintained
/etc/hostsentries so the server name remains stable during reboots and address changes. - Review certificate requests before signing them. A certificate grants an identity to the requesting node, so an unexpected hostname deserves investigation.
- Monitor Puppet Server memory and service health. The documented 2 GB default is not a substitute for sizing based on the number and complexity of catalogs.
- Retain the manual agent test command as a diagnostic tool even when the service is enabled for normal operation.
- Verify package signatures with GPG when supply-chain provenance is part of your security model.
A concise installation checklist
- Identify whether the VPS is a Puppet Server or an agent.
- Confirm that its exact Linux release is supported for that role.
- Obtain administrative access and establish a stable FQDN.
- Enable the official Puppet repository for the release and architecture.
- Install
puppetserverorpuppet-agentwith the platform package manager. - Start the service and verify the installed version.
- For an agent, set the master FQDN when it is not
puppet, ensure/opt/puppetlabs/binis available, and enable the service. - Run the agent test, sign its CSR on the CA host, and run the test again.
- Only after package, service, DNS, firewall, and certificate checks pass should you troubleshoot catalog or manifest errors.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




