发布3.2.1正式版。2013-05-23 经过2个RC版。这是新的产品系列，未正式发布3.2.0,其他产品线为3.1.1/3.0.2/2.7.21/2.6.18 此版本包括支持Ruby 2.0,支持OpenWRT OS，支持External CA，新的modulo (%) 以及Bug修正等。
3.2.1 is a bugfix release of the Puppet 3.2 series. It addresses two major issues that were uncovered in 3.2.0 and caused us to pull that release (#20726 and #20742). It also includes a fix for Solaris support (#19760).
- Bug #19760: install sun packages failed with:Error: /Stage[main]/Inf_sol10defaultpkg/Package[SMCcurl]: Could not evaluate: Unable to get information about package SMCcurl because of: No message
- Bug #20726: usermod command arguments out of order
- Bug #20742: unauthenticated clients unable to communicate with puppet master (running in passenger)
On Windows, Puppet 3.2.1 is unable to manage the home directory for a user account. (Bug #20768) This is a regression from Puppet 3.1.1; it was introduced by switching to Ruby 1.9 in the Windows .msi package. This bug will be fixed soon in a point release, but wasn’t severe enough to delay shipping.
All 3.2.1 Changes
3.2.0 is a backward-compatible features and fixes release in the Puppet 3 series. It was never officially released, as major bugs were discovered after the release was tagged but before it was published; 3.2.1 was the first official Puppet 3.2 release.
The most notable changes are:
- An optional, experimental “Future” parser
- Ruby 2.0 support
- OpenWRT OS support
- External CA support
- A new modulo (%) operator
- New slow catalog profiling capabilities
- General improvements and fixes, including improved splay behavior, fixes to the cron type, improvements to the module tool, and some Hiera-related fixes
Ruby Bug Warning: Ruby 1.9.3-p0 has bugs that cause a number of known issues with Puppet 3.2.0 and later, and you should use a different release. To the best of our knowledge, these issues were fixed in the second public release of Ruby 1.9.3 (p125), and we are positive they are resolved in p392 (which ships with Fedora 18). Unfortunately, Ubuntu Precise ships with p0 for some reason, and there’s not a lot we can do about it. If you’re using Precise, we recommend using Puppet Enterprise or installing a third-party Ruby package.
Experimental “Future” Parser With Iteration
In a first for Puppet, we’re shipping two versions of the Puppet language in one release.
- Language: Experimental Features (Puppet 3.2)
- Demonstration: Revision of the puppet-network module using experimental features (GitHub home for the revised module)
By default, Puppet 3.2 is backward compatible with Puppet 3.1, with only minimal new language features (the modulo operator). However, if you setparser = futurein puppet.conf, you can try out new, proposed language features like iteration (as defined in arm-2). See the documents linked above for complete details.
Note that features in the experimental parser are exempt from semantic versioning. They might change several times before being released in the “current” parser.
Ruby 2.0 Support
Special thanks to: Dominic Cleal.
Previous releases almost worked on Ruby 2.0; this one officially works.
OpenWRT OS Support
Special thanks to: Kyle Anderson.
OpenWRT is a distribution of Linux that runs on small consumer-grade routers, and you can now manage more of it with Puppet. This requires Facter 1.7.0-rc1 or later, as well as Puppet 3.2. Puppet Labs doesn’t ship any packages for OpenWRT.
New OpenWRT support includes:
- Facter values:
- operatingsystemandosfamilywill report asOpenWrt
- operatingsystemreleasewill resolve correctly, by checking the/etc/openwrt_versionfile
- General Linux facts will generally resolve as expected.
- The newopkgprovider can install packages and dependencies from the system repositories (set in/etc/opkg.conf), can ensure specific package versions, and can install packages from files.
- The newopenwrtprovider can enable/disable services on startup, as well as ensuring started/stopped states. Since OpenWRT init scripts don’t have status commands, it uses the system process table to detect status; if a service’s process name doesn’t match the init script name, be sure to specify astatusorpatternattribute in your resources.
External CA Support
Special thanks to: Dustin Mitchell.
We now officially support using an external certificate authority with Puppet. See the documentation linked above for complete details.
If you were stalled on 2.7.17 due to bug 15561, upgrading to 3.2 should fix your problems.
Special thanks to: Erik Dalén.
The new %modulo operator will return the remainder of dividing two values.
Better Profiling and Debugging of Slow Catalog Compilations
Special thanks to: Andy Parker and Chris Price.
If you set theprofilesetting totruein an agent node’s puppet.conf (or specify–profileon the command line), the puppet master will log additional debug-level messages about how much time each step of its catalog compilation takes.
If you’re trying to profile, be sure to check the–logdestand–debugcommand-line options on the master — debug must be on, and messages will go to the log destination, which defaults to syslog. If you’re running via Passenger or another Rack server, these options will be set in the config.ru file.
To find the msessages, look for the stringPROFILEin the master’s logs — each catalog request will get a unique ID, so you can tell which messages are for which request.
General Improvements and Fixes
Splay Fixes for Puppet Agent
The splaysetting promised relief from thundering-herd problems, but it was broken; the agents would splay on their first run, then they’d all sync up on their second run. That’s fixed now.
Special thanks to: Felix Frank, Stefan Schulte, and Charlie Sharpsteen.
The cron resource type is now much better behaved, and some truly ancient bugs are fixed.
Module Tool Improvements
Thepuppet modulecommand no longer misbehaves on systems without GNUtarinstalled, and it works on Windows now.
puppet:///URIs Pointing to Symlinks Work Now
Special thanks to: Chris Boot.
In older versions, asource => puppet:///…..URI pointing to a symlink on the puppet master would fail annoyingly. Now Puppet follows the symlink and serves the linked content.
Puppet Apply Writes Data Files Now
Special thanks to: R.I. Pienaar.
Puppet apply now writes the classes file and resources file. If you run a masterless Puppet site, you can now integrate with systems like MCollective that use these files.