Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
VGSources
Blog

How to Set Up a Masterless Puppet Environment on Ubuntu

Run Puppet without a primary server by installing the correct package on each Ubuntu node, keeping a versioned local code tree, applying manifests with puppet apply, and supplying your own module distribution, scheduler, reporting, and secret handling.
Length10 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A masterless Puppet setup runs puppet apply locally on every Ubuntu node. Each node compiles and applies its own catalog from a local manifest, writes a report, and exits. There is no Puppet server to contact, so you must provide the code, modules, scheduling, reporting, and secrets distribution yourself.

What “masterless Puppet” means

Masterless Puppet is not a smaller Puppet server. It is the direct use of Puppet’s standalone execution tool, puppet apply, against a manifest stored on the node. A run is foreground and one-shot: Puppet compiles a catalog, enforces the resources it contains, writes a report, and exits.

As an Amazon Associate I earn from qualifying purchases.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

By default, puppet apply does not initiate outbound network connections or accept inbound connections. That makes it useful for isolated hosts, appliances, development machines, and environments where each node must remain independently manageable. It also means that a successful design must solve several responsibilities normally handled by a primary Puppet server:

  • Getting manifests and modules onto each node.
  • Choosing when a run starts.
  • Collecting reports and alerting on failures.
  • Providing data and secrets required by the manifest.
  • Keeping versions consistent across the fleet.

Check Ubuntu and architecture support first

Puppet’s current supported-agent table lists Ubuntu 22.04, 24.04, and 26.04 package targets. The table includes both x86_64 and ARM architectures for the listed releases. Match the Puppet package to both the Ubuntu release and the machine architecture; do not assume that a package built for one release is appropriate for another.

#1 Best Overall
Sale
Gaoye Blue Light Blocking Glasses
  • BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
  • EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
  • COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
  • LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
  • WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.

Record the platform before installing:

. /etc/os-release
printf 'Ubuntu %sn' "$VERSION_ID"
uname -m

Use Puppet’s current installation guidance to select the package repository or package file for that combination. In a controlled environment, pin the Puppet package version rather than allowing an unattended update to change the execution engine. Verify package signatures when that is required by your security or change-management policy.

Masterless versus a primary-server design

The following is an operational comparison of the two designs. It describes the consequences of local puppet apply runs rather than claiming that one model is universally better.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Concern Masterless execution Primary-server design
Catalog compilation Each node compiles its own catalog from local code and data. A primary server normally compiles catalogs centrally for nodes.
Scheduling You add cron, a systemd timer, CI, or another scheduler. Scheduling and check-in behavior are normally coordinated by the Puppet service and its surrounding infrastructure.
Network exposure A run does not require an inbound Puppet service and normally makes no outbound connection. Nodes and the primary server need the network connectivity required for catalogs, reports, files, and other services.
Code distribution Your Git, package, image, configuration-management, or removable-media process copies code to every node. The primary server distributes or serves the environment to nodes.
Reporting Reports remain local unless you forward logs or results yourself. Central services can aggregate reports and node status.
Secrets Every node needs access to the secret data required by its local run. Secret retrieval and access can be centralized, subject to the design and security controls you choose.
Fleet scale Simple for a small or disconnected fleet, but coordination work grows with every node. More infrastructure, but shared orchestration and visibility are easier to standardize at larger scale.

Install Puppet on each Ubuntu node

  1. Confirm the Ubuntu release and architecture using the commands above.
  2. Follow Puppet’s current installation instructions for that release and architecture.
  3. Install the package and any required dependencies.
  4. Verify that the executable is available:
puppet --version

If the shell reports that puppet cannot be found, locate the installed binary with command -v puppet and use that absolute path in automation. Package layouts can differ, so do not hard-code a path until you have checked the node.

Pin the package version in the mechanism you use for updates. Keep the selected version recorded with the rest of the environment so that a node can be rebuilt reproducibly.

Create a local code environment

A conventional local tree keeps the environment recognizable to Puppet while making the manifest and modules easy to version together:

/etc/puppetlabs/code/
└── environments/
    └── production/
        ├── manifests/
        │   └── site.pp
        └── modules/

Create the directories with root ownership and restrictive permissions appropriate to the data stored there. Keep this tree in source control, then distribute a known revision to each node through your chosen Git, package, image, or file-transfer process. The same revision should be used wherever you expect identical behavior; deliberate exceptions should be visible in version control rather than edited only on a live host.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

puppet apply uses settings such as basemodulepath and the selected environment when locating code and data, but the main manifest is supplied on the command line or with -e. Supplying the manifest path explicitly is useful in a masterless setup because it makes the entry point obvious to both operators and schedulers.

Rank #2
Windex Gaming Cleaning Wipes, Pre-Moistened Wipes to Instantly Clean all Gaming Gear and Electronics, Resealable Packaging for a Freshness Lock, 25 count (Pack of 1)
  • WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
  • AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
  • PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
  • ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
  • COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed

Install modules and understand modulepath order

Online nodes

For a node that can reach the Puppet Forge, the standard module command is:

puppet module install <author>-<module>

The command installs the module and its dependencies into the first modulepath directory by default. Confirm where that directory is before assuming the module landed in your environment’s modules/ directory.

Offline nodes

An offline node cannot resolve dependencies from the Forge. Download the module release and every dependency on a connected build or staging system, transfer the tarballs to the node, and install them there. Test the complete dependency closure before moving the bundle to an isolated machine; copying only the top-level module commonly produces “module not found” errors during compilation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Make the modulepath explicit when diagnosing problems

The --modulepath option overrides the environment modulepath for one command. On Unix, modulepath entries are colon-separated and ordered. If two directories contain a module with the same name, the earlier directory wins.

puppet apply 
  --modulepath=/etc/puppetlabs/code/environments/production/modules 
  /etc/puppetlabs/code/environments/production/manifests/site.pp

An explicit path prevents an older module in another environment or system-wide directory from silently taking precedence. Once the layout is stable, you can either retain the explicit option in automation or document the equivalent environment setting.

Write the main manifest

Save the following as /etc/puppetlabs/code/environments/production/manifests/site.pp:

package { 'nginx':
  ensure => installed,
}

file { '/etc/motd':
  ensure  => file,
  content => "Managed by masterless Puppetn",
}

This example declares two resources. Puppet installs the nginx package if it is absent and ensures that /etc/motd is a file containing the specified text. Extend the manifest with classes, defined types, and module data as your environment grows, but keep the entry-point manifest easy to find and review.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
LISEN Cell Phone Stand Phone Holder for Desk, Office Decor Gadgets for Men
  • Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
  • Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
  • Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
  • ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
  • Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)

For a quick syntax or behavior experiment, you can provide an inline manifest with -e. For a maintainable node configuration, use a version-controlled file and pass its path to puppet apply.

Preview changes before enforcing them

Run a no-op first. It compiles the catalog and reports intended changes without enforcing them:

sudo puppet apply 
  --noop 
  --modulepath=/etc/puppetlabs/code/environments/production/modules 
  /etc/puppetlabs/code/environments/production/manifests/site.pp

Review every proposed package, file, service, and command change. A no-op is especially important on a rebuilt node, after changing modulepath order, or when introducing a new module whose defaults may affect resources outside the immediate task.

When the preview is correct, run the same command without --noop:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo puppet apply 
  --modulepath=/etc/puppetlabs/code/environments/production/modules 
  /etc/puppetlabs/code/environments/production/manifests/site.pp

Use detailed exit codes in automation

Add --detailed-exitcodes when a scheduler or CI job must distinguish “nothing changed” from “Puppet changed the node” and from an error:

sudo puppet apply 
  --detailed-exitcodes 
  --modulepath=/etc/puppetlabs/code/environments/production/modules 
  /etc/puppetlabs/code/environments/production/manifests/site.pp
Code Meaning for automation Typical handling
0 The run completed successfully and made no changes. Healthy; record the run.
2 The run completed successfully and made changes. Healthy; record what changed.
1, 4, or 6 An error condition occurred. The documented detailed-exitcode matrix uses these values for failure states; code 6 represents a run that both changed resources and encountered failures. Alert, retain the output, and investigate before treating the node as compliant.

Do not configure a scheduler that treats every nonzero result as identical. Code 2 is a successful convergence with changes, while the failure values require attention.

Schedule one-shot runs

Because puppet apply never runs as a daemon or service, an external scheduler must start it. Cron, a systemd timer, CI, an image-build pipeline, or an orchestration platform can all work. The scheduler should invoke the same manifest and modulepath you tested manually.

Rank #4
Ledagic IC+RGBW USB Powered Led Light Bar with App & Remote Control, 2 Pack
  • Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
  • Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
  • 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
  • Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
  • USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC

A small wrapper avoids assumptions about where the package installed the executable:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#!/bin/sh
set -eu
PUPPET_BIN="$(command -v puppet)"
exec "$PUPPET_BIN" apply 
  --detailed-exitcodes 
  --modulepath=/etc/puppetlabs/code/environments/production/modules 
  /etc/puppetlabs/code/environments/production/manifests/site.pp

Install the wrapper with root ownership, restrict who can modify it, and have your scheduler call it at the interval appropriate for the node. Capture standard output and error in the host’s logging system. If the scheduler considers only exit code 0 successful, explicitly teach it that code 2 is also a healthy result.

Scheduling is only half of automation. A run can enforce stale code perfectly, so update the manifest and module tree before the scheduled invocation, and make the update atomic where possible. A failed or partial code transfer should not leave the node with a mixture of revisions.

Distribute manifests, modules, and data

Masterless execution does not distribute anything by itself. Common approaches include:

  • Checking out a pinned Git revision on the node before each run.
  • Installing a versioned package containing the environment tree.
  • Baking the tree into an image and replacing nodes when the revision changes.
  • Copying a tested release bundle through an existing deployment pipeline.
  • Moving module tarballs and dependency bundles through approved removable-media procedures for isolated networks.

Whichever mechanism you choose, record the environment revision and module versions with the run output. For offline nodes, validate dependency closure and Puppet syntax in a connected staging environment before transfer. Keep the production tree separate from temporary downloads so that an incomplete bundle cannot accidentally become the active modulepath.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Handle secrets deliberately

Local execution changes where secret access occurs: each node must be able to read every secret or data source required by its manifest. That may mean a local protected file, a pre-provisioned credential, or access to an approved secret system when the node is online. Puppet’s masterless mode does not provide a central secret-distribution policy for you.

  • Keep secret-bearing files outside world-readable directories and set ownership and permissions explicitly.
  • Do not commit plaintext credentials to the manifest repository.
  • Ensure the account running Puppet can read required data while unrelated users cannot.
  • Prevent logs and reports from exposing secret values.
  • Rotate credentials through the same controlled distribution process used for code.

Test a node with the same privileges and network restrictions it will have in production. A manifest that succeeds interactively as an administrator may fail under the scheduler because the environment, permissions, or available credentials differ.

Best Value
Sale
HUANUO FlowLift™ Dual Monitor Stand, Fully Adjustable Gaming Monitor Desk Mount for 13–32″ Computer Screens, Full Motion VESA 75x75/100x100 with C-Clamp & Grommet Base, Each Arm Holds 4.4 to 19.8 lbs
  • Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
  • Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
  • Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
  • Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
  • Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.

Troubleshoot the first run

puppet: command not found

Confirm that the Puppet package matches the Ubuntu release and architecture, then run command -v puppet. Use the returned absolute path in the wrapper or scheduler and verify that the scheduler’s PATH is not narrower than your interactive shell’s.

A module cannot be found

Run the command with an explicit --modulepath. Check the directory name, module name, and modulepath order. If the node is offline, confirm that the module tarball and every dependency were installed on that node; installing only the top-level module is insufficient when dependencies are absent.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The no-op proposes an unexpected replacement

Inspect the complete modulepath. An earlier directory wins when duplicate module names exist, so an older implementation may be loaded instead of the version you intended. Also verify that the manifest path points to the expected environment and that the code revision was updated before the run.

The run works manually but fails on a schedule

Compare the scheduler’s user, working directory, PATH, environment variables, mounted filesystems, and secret access with the interactive session. Use an absolute manifest path, an explicit modulepath, and captured logs. Preserve the detailed exit code so the scheduler can distinguish a successful change from a failure.

An offline deployment fails during compilation

Return to the connected staging system, build a complete module bundle, and test it against the same Ubuntu release and Puppet package version. Transfer the dependency closure together, then rerun the no-op on the isolated node before enforcement.

Operational checklist

  • Confirm Ubuntu 22.04, 24.04, or 26.04 and the supported x86_64 or ARM architecture.
  • Install a package intended for that release and architecture.
  • Pin the Puppet package version and verify signatures according to policy.
  • Keep the environment tree and module versions in source control.
  • Run --noop and inspect all proposed resources before the first enforcement.
  • Use an explicit modulepath when more than one module tree or environment exists.
  • Test dependency closure before moving modules to offline nodes.
  • Schedule the one-shot command with cron, a systemd timer, CI, or another controlled mechanism.
  • Capture output and interpret detailed exit codes 0 and 2 as successful outcomes.
  • Alert on failure codes and retain enough log context to reproduce the run.
  • Ensure every node can securely access the data and secrets its manifest requires.

When masterless Puppet is the right fit

Choose this model when local autonomy, low network dependence, or isolation matters more than centralized orchestration. It is straightforward for a small fleet and for nodes that cannot maintain a connection to a primary server. The trade-off is operational ownership: you must build the release pipeline, scheduler, reporting path, dependency management, and secret handling that a centralized design would otherwise organize for you.

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.

If you need one place to approve changes, see fleet-wide reports, coordinate complex multi-node ordering, or manage a large and frequently changing estate, evaluate whether a primary-server architecture better matches those requirements. If each host should be independently recoverable and the configuration is already delivered as part of a controlled image or package, masterless execution can be the simpler choice.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.