Puppet 4.2 Release Notes

Included in Puppet Enterprise 2015.2. A newer version is available; see the version menu above for details.

This page lists the changes in Puppet 4.2 and its patch releases.

Puppet’s version numbers use the format X.Y.Z, where:

  • X must increase for major backwards-incompatible changes
  • Y may increase for backwards-compatible new functionality
  • Z may increase for bug fixes

If You’re Upgrading from Puppet 3.x

Make sure you also read the Puppet 4.0 release notes, since they cover any breaking changes since Puppet 3.8.

Also of interest: the Puppet 4.1 release notes.

Puppet 4.2.3

Released October 29, 2015.

Shipped in puppet-agent version 1.2.7.

Puppet 4.2.3 is a bug fix and platform support release in the Puppet 4.2 series. It also removes support for Ubuntu 14.10 (Utopic).

For JIRA issues related to Puppet 4.2.3, see:

New Platforms: AIX 5.3, 6.1, and 7.1, and Solaris 11

Puppet 4.2.3 adds functionality for AIX 5.3, 6.1, and 7.1 on PowerPC architectures, and Solaris 11 on SPARC and i386 architectures. Note that puppet-agent packages for these platforms are available only in Puppet Enterprise.

SUPPORT END: Ubuntu 14.10 (Utopic)

Ubuntu 14.10 (Utopic) reached the end of its life on July 23, 2015. Support for it ends with Puppet 4.2.3. We continue to support Ubuntu 14.04 (Trusty) and 15.04 (Vivid).

REGRESSION FIX: Revert Error Code When Running Puppet Master Without a puppet User or Group

Prior to Puppet 4.1.0, running Puppet master as root would exit with error code 74 if the puppet user, which Puppet uses for the process, did not exist. In Puppet 4.1.0, this error code was unintentionally changed to 1. Puppet 4.2.3 reinstates error code 74 in this situation.

REGRESSION FIX: Properly Filter with Tags with Segmented Names

Since Puppet 3.5.0, running Puppet agent with a tag filter (the --tag flag) would split the given tag if it contained a segmented name, such as the double-colon separator in apache::mod. This resulted in Puppet behaving as if you had specified multiple tags, which could lead to inconsistent or unexpected results. Puppet 4.2.3 resolves this issue.

FIX: Manage Passwords for Windows User Resources Only When Specified

In previous versions of Puppet for Windows, Puppet fails when attempting to create users without specifying a password while the Windows Password Policy Password must meet complexity requirements policy is enabled. Puppet 4.2.3 resolves this issue.

Note: When the Windows Password Policy Minimum password length is greater than 0, the password must be specified because Windows requires passwords for all new user accounts.

Also, when you specify a user resource for a new user in Puppet with the managehome parameter set to true, you must always specify the password.

FIX: Log Exceptions Raised by Indirector Save Methods

In previous versions of Puppet, Puppet did not log exceptions raised by an indirector save methods, resulting in no indication in the logs when code exits on an exception. Puppet 4.2.3 ensures that Puppet logs these exceptions.

FIX: Puppet Can Manage the puppet Service on Enterprise Linux 4

In Enterprise Linux 4, the puppet service installed by puppet-agent would always stop when attempting to manage it with Puppet. Puppet 4.2.3 resolves this issue.

FIX: Puppet Language’s filter Function Returns Elements as Specified

In Puppet 4.2.2, the filter function did not behave according to specification when filtering a hash, as it allowed any “truthy” value as a return from the lambda to include the element in the result. Puppet 4.2.3 only includes an element in the result when the lambda returns a Boolean true.

Puppet 4.2.2

Released September 14, 2015.

Shipped in puppet-agent version 1.2.4.

Puppet 4.2.2 is a security, bug fix, and platform support release in the Puppet 4.2 series. It also adds warnings for new reserved words, to prepare for upcoming language features.

For JIRA issues related to Puppet 4.2.2, see:

SECURITY: Override Cert File Locations on Windows

Puppet on Windows was relying on OpenSSL’s default certificate locations, which aren’t guaranteed to be safe. With this fix, Puppet now overrides the default locations with known safe ones. We recommend all Windows users upgrade for this security fix.

New Reserved Words: application, consumes, and produces

To prepare for upcoming language features, we’ve reserved three new words in the Puppet language:

  • application
  • consumes
  • produces

Like all reserved words, you can’t use these as unquoted strings or as names for classes, defined types, resource types, or custom functions.

Since this isn’t a major version boundary, using these words will log warnings instead of errors. In the next major version of Puppet, they will become normal reserved words. When we introduce features that use these words, they will be opt-in via a setting until the next major version of Puppet.

This change also went into Puppet 3.8.2’s future parser.

New Platform: Ubuntu 15.04 Vivid Vervet

We’re now providing Puppet agent packages for Vivid, along with a PC1 repo for that platform.

Packaging Change: OS X Disk Image Names

Our Mac OS X disk images had a redundant and unwieldy naming scheme (puppet-agent-1.2.2-osx-10.10-x86_64.dmg), so we simplified it (puppet-agent-1.2.4-yosemite.dmg). OS X agent packages are available here.

Bug Fixes: Windows

Bug Fixes: Mac OS X

Bug Fixes: Linux

Bug Fixes: Misc

Puppet 4.2.1

Released July 22, 2015.

Shipped in puppet-agent version 1.2.2.

Puppet 4.2.1 is a bug fix release.

Known issue

Running puppet resource user in US-ASCII on Mac OSX 10.10 results in an error, “Error: Could not run: invalid byte sequence”.

This is an offshoot of Puppet and Ruby’s more strict UTF-8 handling. The solution is to set a high-bit-capable locale in your shell:

export LANG=en_US.UTF-8 

To make this permanent, it needs to be in your shell initialization file (~/.profile or one of its kin).

Bug fixes

  • PUP-4752: Variable names were being checked for allowed characters, but not if they appeared as names of parameters.
  • PUP-4770: Solaris Zone’s provider debug and error messages were changed to global, this has been reverted to so that it is prefixed with provider context.
  • PUP-4777: Puppet gem dependencies updated to use Hiera 3.
  • PUP-4789: The 4.x hiera_include function was not propagating the correct scope to the include function.
  • PUP-4826: When using Integer[1], the expectation was that this produces the type Integer[1, default], but it produced Integer[1,1]. The same was occuring with Float. After the fix, they are both operating as documented in the Puppet Language Reference.
  • PUP-4775: Serialization of node objects could produce giant serializations. When loaded later would cause ‘stack level too deep’ errors. This was caused by logic missing in the node implementation that should have prevented serialization of the entire runtime state of the environment.
  • PUP-4810: Puppet was caching parse results even when environment_timeout was set to 0.
  • PUP-4847: When using custom providers, the puppet resource command could not use custom facts.

  • All tickets fixed in 4.2.1
  • Issues introduced in 4.2.1

Puppet 4.2.0

Released June 24, 2015.

Shipped in puppet-agent version 1.2.0.

Note: Make sure you install the puppet-agent 1.2.1 package instead of 1.2.0. The .0 release included a Facter regression involving external facts, which was fixed in 1.2.1.

4.2.0 is a feature and bug fix release in the Puppet 4 series. There aren’t any particular keystone features; just a solid grab-bag of nice smaller improvements.

Also notable in this release: we’re officially deprecating Windows Server 2003 and 2003 R2, which we will stop supporting in Puppet 5.

DEPRECATED: Windows 2003

Windows Server 2003 and 2003 R2 are approaching Microsoft’s official end of support deadline, which means we, too, will stop supporting it soon.

Puppet 4.x will continue to work with Windows 2003, but the installer and upgrader will issue deprecation warnings. Once Puppet 5 is released, Windows 2003/2003R2 will be officially unsupported.

For more information, see the Windows 2003 deprecation page.

New Feature: Support for the no_proxy Environment Variable

Many command-line tools in Unix-land support common environment variables for configuring HTTP(S) proxies. Previously, Puppet respected the http_proxy and https_proxy variables when connecting to HTTP services (like the Puppet Forge), but ignored the no_proxy variable.

Now, Puppet will respect a comma-separated list of domain exceptions in the no_proxy environment variable, if present. The exceptions can be:

  • Full domains (web01.example.com)
  • IP addresses (
  • Domain suffixes beginning with a dot (.example.com)
  • Domains with * as a wildcard (*.example.com)
  • Any of the above with a port number included (*.example.com:8081)

Special thanks to Chris Portman for help with this.

New Features: Miscellaneous

Puppet apply now supports the splay setting, and Puppet agent sets a new agent_specified_environment fact.

And of internal interest only: The node HTTPS endpoint has a new, optional, configured_environment query parameter.

New Features: Resource Types and Providers

Performance Improvement: Catalog Application

This release gets a cool and noticeable speed-up when applying catalogs. Special thanks to Nelson Elhage for finding this win.

Bug Fixes: Miscellaneous

Bug Fixes: Language

Bug Fixes: Resource Types and Providers



User and Group


↑ Back to top