Puppet 2.7.0 is available. This is a feature-based release for the Puppet project. This release incorporates several key new features, hundreds of bug fixes and enhancements, and a lot of input from the community. We went through four release candidates on Puppet 2.7.0 and appreciate all the feedback, bugs, questions and ideas that made Puppet 2.7.0.
First things first: You can download Puppet 2.7.0
The release notes
cover thoroughly what's new, what's changed and what's improved with Puppet. I'll highlight some of my favorite features, coming from a system management prospective. We've had a few blog articles
already about some of the API enhancements, including Faces.
As previously mentioned
, in 2.7.0 we changed the license of Puppet to the Apache Software License Version 2.0
Ruby 1.9 Support
2.7.0 is the first version of Puppet to support Ruby 1.9. We've targeted 1.9.2 and higher versions. There are still a few known issues, but bugs are being aggresively fixed with Ruby 1.9 and it's now a first-class citizen on our Continuous Integration system.
Deterministic Catalog Application
Previously, Puppet didn't guarantee the application of a catalog of unrelated resources in any particular order. This meant that if you forgot to specify some important `before` or `require` relationship, a single catalog might work fine on eight nodes and then fail mysteriously on the ninth and tenth. This could be frustrating! Now it's gone: Puppet will make sure that the same catalog will always be applied in the same order on every machine, and it'll either succeed reliably or fail reliably. (This change will also be appearing in the final 2.6.x releases.)
Manage Network Devices
Puppet has new types for managing network hardware, and a new `puppet device` subcommand for applying these configurations. These are in their early stages and can currently only handle Cisco IOS-based hardware, but they're the start of a big leap forward in Puppet's ability to manage your entire infrastructure. Look a blog with more details of this functionality soon.
We're starting the hourglass on a few older features:
puppet' as a synonym for '
puppet apply' --- Starting today, running `puppet my-manifest.pp` will issue a warning; you should start using `puppet apply` directly instead. Support for implicit invocation of puppet apply will be dropped in Puppet 2.8.
- Dynamic scope --- We've started issuing warnings when variables or resource defaults are found via dynamic lookup. There's more info and explanation in a guide on the docs site, but the short version is that you should start referencing variables with their qualified names instead of counting on dynamic scope. We hope to drop support for dynamic scope in Puppet 2.8.
- No more `--parseonly` option --- This one's already gone, because we used Faces to build a drop-in replacement: use `puppet parser validate  [ ...]` instead.
Download Puppet 2.7.0