What is the theme of this release?
The 2.6 release brings significant enterprise enhancements to Puppet’s platform for data center automation. The features include:
- REST API, making it easier to integrate Puppet with other systems.
- Preliminary Windows support for heterogeneous computing environments.
- Language enhancements & an Internal DSL so administrators who know and want to use pure Ruby for infrastructure development, can easily do so.
- Event model, which lays the foundation for powerful reporting and monitoring. It provides structure to data generated by the system and facilitates reporting and analysis, simplifying the identification of infrastructure problems.
Other additions with Puppet 2.6 include significant work in the core of Puppet to make it easier to work with configuration data, including enhancing how Puppet reports on what it does, adding more audit capabilities and helping export information about the infrastructure environment. The command line interface has also been completely redesigned to allow using a single executable to interact with all of Puppet’s functionality.
Why is this version 2.6 but the previous version .25?
Puppet has already experienced several significant versions prior to .25 that could have been considered 1.0 or beyond because of their stability, features and proven performance in the enterprise. We didn’t think a 1.0 version number adequately capture the current state of the platform and we used this as an opportunity to update the numbering system. We consider this release eleventy times better so 2.6 felt right.
Why the switch to REST for the API?
Several parts of our system were already REST-enabled. Given the traction this approach has achieved we decided to convert other parts of the system. The XML-RPC pieces currently in place will be replaced over time.
Why support Windows now?
Puppet has traditionally been very strong with Linux and Unix-based systems, including Red Hat, CentOS, Fedora, Debian, Ubuntu, SuSE, Solaris, HP-UX, AIX, BSD, and OS X. Based on requests from customers, we now felt it was time to provide preliminary support for Windows.
What are the limitations of the Windows support?
With the 2.6 release, Puppet can support files within Windows environments. Puppet is architected in a way that additional functionality can be added via modules, so adding new capabilities will be significantly easier now that the foundation is built. Look for additional capabilities for managing Windows systems in upcoming releases.
Will the language changes impact current users of Puppet?
No. Our current user base is dominated by systems administrators who are more comfortable working with our domain specific language (DSL). We recognize that some web operations teams are more developer-centric and may prefer to work with pure Ruby to build their Puppet manifests. The 2.6 release now gives our users the choice of either approach to fit their particular preferences and skills.
Puppet is one of the most widely used Ruby applications. We chose to develop a DSL to ease the adoption process for systems administrators. With the DSL, a sys admin can often get started in under an hour rather than learning an entire language before they get any value from a solution.
Will the Puppet manifests and new Ruby-based manifests work together?
Absolutely. They are both first class citizens in our systems and both types of manifests can coexist.
What are some examples of the the language enhancements?
Hashes, class parameters, and support for “elsif”
How will the new event model improve the performance of my infrastructure?
This enhancement enables the generation of structured data about your infrastructure. Traditional solutions rely on systems logs to capture details about activity. Structured data makes it much easier to understand the specific changes to your infrastructure, helping you rapidly draw correlations between activities and their impact on your systems. The new event model will also yield richer data for reports and other point solutions in your infrastructure.
How will the single executable improve the ease of use of Puppet?
From verison 2.6.0 and onwards all the Puppet functions are also available via a single Puppet binary, in the style of git. The list of binary changes includes:
- puppetmasterd –> puppet master
- puppetd –> puppet agent puppet –> puppet apply
- puppetca –> puppet cert
- ralsh –> puppet resource
- puppetrun –> puppet kick
- puppetqd –> puppet queue
- filebucket –> puppet filebucket
- puppetdoc –> puppet doc
- pi –> puppet
You can learn more about this enhancement in the Release Notes.
When is 2.6 available?
RC4 is available for download right now.