In a previous blog post, we introduced use cases for separating configuration data from Puppet code. This post (part one of a two part series) will go in-depth with installing, configuring, and using Hiera, but let’s first look at WHY we would need Hiera. Introduction to the SSH module One of the benefits of Hiera […]
You’ve bought Pro Puppet, downloaded a couple of modules from the Puppet Forge (and have written some of your own too), and you’re on your way to implementing your Puppet environment when it hits you: something feels bulky with the way you’ve designed your Puppet code. Your modules may not be portable between environments (development, […]
One of the issues that crops up when working with Puppet is ensuring that your manifests do what you expect. Errors are bound to happen. A missed brace can make a manifest not compile, or forgetting to include a module or set a variable may mean that running Puppet on the host fails to enforce […]
The first Puppet Triage-a-thon was a huge success. Thank you so much to everyone who attended and contributed! Some of our favorite stats from the event: We started the day with 2292 open tickets. Over the course of the day 565 tickets were triaged. We also closed 115 tickets. That’s almost 25% of the open […]
Getting Started With Puppet Weekly Webinar: Ask Your Puppet Enterprise Questions Get a Live Management demo, and ask your burning PE questions. Puppet Enterprise 2.0 How To: Cloud Provisioning Start provisioning in the public and private cloud today. VIDEO: AWS CloudFormation and Puppet Enterprise 2.0 How to build out Puppet Enterprise stacks with CloudFormation. Forge […]
Written in conjunction with Tino Vazquez from the OpenNebula Project, and cross-posted on the OpenNebula blog. Puppet is used for managing the infrastructure for many IaaS software packages, including Eucalyptus, OpenStack, and OpenNebula. OpenNebula is an IaaS manager which can not only manage a large amount of different virtualization and public cloud platforms, it can […]
The Puppet CloudFormation Face integrates Puppet Enterprise (PE) with CloudFormation so that users can reliably create entire Puppet Enterprise “stacks” in Amazon’s EC2 from their workstation. A “stack” refers to a collection of launched Amazon Web Services (AWS) “resources” that can be specified as a “template” in CloudFormation’s declarative json modeling language. Templates support a […]
With the launch of Puppet Enterprise 2.0, it’s easy to get lost in the scale of what we’ve enabled sysadmins to do. Besides shipping a world-class configuration management tool, we now make it easy to create managed servers from thin air. In addition, we’re providing command line tools that take fresh OS installs directly to […]
With the release of Puppet Enterprise 2.0, Puppet Labs has added cloud provisioning capabilities with support for some of the most popular public and private cloud offerings including Amazon EC2 and VMware. PE 2.0 allows you to quickly provision virtual machines and start managing them with Puppet right away. Getting Started The following set of […]
Why do we want configuration management? There are plenty of reasons, but at the core of them is that we want to streamline the configuration and deployment of systems. We want this process to be repeatable, well-understood, and predictable. We want to make it deterministic. Determinism — the idea that a process should result in […]
It’s come time for us to pick a code name for our next release of Puppet. If you help develop Puppet you may be fairly familiar with our naming system, but for those who haven’t yet contributed to the open source project, we name each version of Puppet after a Muppet. We use code names […]
This post is the second in a series on Live Management, new in Puppet Enterprise 2.0, a capability that lets you visually discover, clone, and manage resources across your entire deployment, all through the graphical interface (GUI). In the first post in this series we covered how to make quick changes across your infrastructure by […]
I’m thrilled to announce that VMware, Google Ventures, and Cisco have joined existing investors Kleiner Perkins Caufield & Byers, True Ventures, and Radar Partners in our $8.5 million Series C financing. Gene Kim, author of VisibleOps and founder of Tripwire, has also invested. It’s an exciting milestone for our company. In 2005, after years of […]
OVERVIEW We have discovered a security vulnerability (“AltNames Vulnerability”) whereby a malicious attacker can impersonate the Puppet master using credentials from a Puppet agent node. This vulnerability cannot cross Puppet deployments, but it can allow an attacker with elevated privileges on one Puppet-managed node to gain control of any other Puppet-managed node within the same […]
Cloud computing has brought many benefits to enterprises and startups alike. Not only has it dramatically lowered the cost and time of getting from a prototype to a live product, it has lowered the time required to scale to increased demand. However, the benefits of cloud computing come with difficulties. One of these challenges is […]
As announced by AWS last week, the latest version of the Amazon AMI now includes Puppet 2.6.6 and Facter 1.5.9 (release notes). Accompanying the announcement AWS released a white paper outlining steps to integrate AWS CloudFormation and Puppet. The white paper demonstrates: Installing and securely configuring the Puppet Master Automating the install of Facter Customizing […]
Today we’re excited to announce Puppet Enterprise 1.2 with two great new features that give you the intelligence you need to prove you’re in compliance with your change management processes. With Puppet Enterprise Compliance you set a desired-state for each of your systems and monitor them for any changes, right from our web-based Dashboard, creating […]
We are evaluating two tools for testing Puppet modules. One is rspec-puppet, the other is cucumber-puppet. The hope is to get standards for testing into the module forge and hook it into a CI framework such as Hudson or Jenkins. This will enable Puppet Forge users to immediately evaluate a module in terms of its test failure rate, and enable developers to see the intended behavior of the module. The higher level goal is to open a discussion among developers on the Puppet Forge about the intended behavior of modules, what they need to do, and what they should and should not be doing.
Another huge goal of this project is to develop a way to test Puppet without running puppet apply and looking to see what worked or didn’t. Both of the tools under consideration allow the developer/sysadmin to test the modules against Puppet to see if they compile (equivalent to a puppet apply —noop) and then hold the catalog object so that we can see if the catalog is formed as intended.
Cucumber-puppet’s advantages are that it is a more mature codebase, it is faster to start with, and it uses the human-readable gherkin language for its tests. One disadvantage for cucumber-puppet is that it is difficult to contain all of the tests within a cucumber feature. Many of the tests we have written in cucumber-puppet involved creating dummy nodes in a site.pp to write cucumber tests against. Cucumber-puppet also doesn’t seem to be compatible with Puppet 2.7.x, at least not yet. It is however compatible with the 0.25.x branch which is a benefit for legacy puppet users and administrators.
Rspec-puppet’s advantages are that it is brand new and has seen a flurry of development since its inception. Puppet already uses a lot of rspec to do testing, and, since the gherkin layer is removed, it can be coded entirely in Ruby. Also, in contrast to cucumber-puppet, rspec-puppet tests can be entirely contained within the spec test file. And for compatibility, rspec-puppet works well with the Puppet 2.6.x/2.7.x branches, but does not work with the 0.25.x branch. One note for testing both 2.6.x and 2.7.x is that 2.6.x will raise Puppet::Error exceptions for catalog compilation failures while the 2.7.x branch raises general Runtime exceptions.