Introducing Razor, A Next-Generation Provisioning Solution

Puppet Labs is really excited to introduce Razor, a next-generation hardware provisioning solution developed collaboratively with our friends at EMC. I'll be diving into details about specific Razor features in a series of blog posts, which includes installation via a Puppet module, but in this post I'll focus on a high level overview of Razor's features and the problem it's solving.

Problems With Current Solutions

EMC actually initiated Razor in response to challenges they were having internally with existing hardware provisioning technologies. In building-up test and burn-in environments for their own software solutions, EMC found themselves bottlenecked by provisioning tools that were vendor-specific, monolithic, and closed. Moreover, public and private clouds gave their Development & QA teams infrastructure that responded nimbly and on-demand; why couldn’t their hardware infrastructure give them the same responsiveness and efficiencies?

To remedy, EMC first surveyed the landscape of provisioning technologies. Given the importance of provisioning as the first, critical step in building compute infrastructure, surely someone had innovated a solution to these problems? But nothing seemed to really address the needs of the system administrators responsible for infrastructure, so EMC set out to solve the problem themselves.

Enter Puppet

EMC was already very familiar with Puppet Labs and our products, and these served as an inspiration and foundation for Razor. Specifically, the EMC team sought to bring Puppet’s declarative, model-based approach of configuring software to the provisioning of server hardware with an operating system. In addition, Puppet Labs’ metadata-driven enterprise message bus and node inventory technologies, MCollective and Facter respectively, were critical enabling components for Razor.

Further considerations in selecting to partner with Puppet Labs were the pervasiveness of its open source technologies as well as its active and engaged community. EMC’s Razor team recognized that existing provisioning technologies were handicapped by their tight association with a single vendor, and open sourcing Razor to an active community was the surest way to avoid a similar fate.

Razor: Cloud Agility and Efficiency for Hardware Infrastructure

OK, enough already … what’s different about Razor?

First, during boot the Razor client auto-discovers the inventory of the server hardware – CPUs, disk, memory, everything – and feeds this to the Razor server in real-time. This means you always have the latest, most up-to-date information about every server in your data center, eliminating the need for manual inventory processes and tools.

Second, Razor knows the latest state of every server, and this state is updated with the auto-discovered inventory data. Razor also maintains a set of rules to match the appropriate operating system images with server capabilities as expressed in metadata. This match is made dynamically, so any change in the underlying hardware is automatically detected, reflected in the model, and can potentially result in the selection of a different operating system image – all automatically.

Third, Razor is integrated with Puppet for a seamless hand-off. After Razor selects the operating system image it then automatically installs the Puppet agent and classifies the node. Puppet picks up the ball and begins configuring the operating system, and so on up the stack.

Fourth, in contrast to other provisioning technologies Razor is open, pluggable, and programmable. Hardware has a unique boot sequence? No problem, create a new model. Want to change how operating system images are selected? Just update the rules via the Razor CLI. Need to support a new OS? Easy. Razor is all about giving choice, agility, and automation to the system administrator so they can eliminate the repetitive and menial from their day.

What this all means is that now Razor and Puppet enable the system administrator to automate the entire infrastructure stack, from bare metal to fully deployed applications on the cloud.

Check It Out

Nigel Kersten, Puppet Labs’ CTO, will be on stage during Chad’s World at EMC World today at 5:30pm PDT to demo Razor, and we’re also in the EMC Innovation Center on the show floor. Also, our friends from the EMC CTO’s Office – Dan Hushon, Chuck Hollis, Nick Weaver – have blog posts out today (here, here, and here, respectively) sharing the details of EMC’s work and perspective on Razor.

Razor is available for download now from the Puppet Forge. Check it out - we’re looking forward to your feedback. And stay tuned for more Razor blog posts soon!

- Nan

Learn More




How does razor compare to The Foreman, they seem to have similar goals and functionality.

Nan Liu

Nan Liu

As someone who haven't used The Foreman, I'll focus on some of the interesting things in Razor instead:

* Auto Discovery: plug into the network, power on, and razor will discover what servers you have, and provide details about the hardware. You don't need macaddress and keep inventory spreadsheets.

* Policy Rules: Based on tags derived from hardware facts about the system, apply different deployment policy.

As an example of this, we can describe in Razor:
1. All servers that are physical with 4 CPU, deploy ESX.
2. All servers that are virtual with 1 CPU and 4GB of memory, deploy CentOS, and handoff system to puppet.test.puppetlabs.lan for management.
3. All servers that are virtual with 32GB of memory, deploy Debian, and handoff system to for management.

* Insight: At a glance I can tell what state a system is in. Which model is deployed, what OS is installed, what part of the OS installation it's currently at:

$ razor policy active
Active Models:
Label State Node UUID System Bind # UUID
precise_puppet postinstall 2HMHaWiBq4ZFQPazpxIJi6 puppet 1 2RvuvWak5IhGxbhmnzoKrq
centos init 2Xo4KCwQAquHnc8V7KyTU2 none 8 2hF2Yu3ipx6hRzkBCU08ug
centos postinstall 5PfILygjPv4WTayOnTOYMk none 1 5Uz6ssRB8fIVxEyyfYxn0E
opensuse init 3IJRe6fD8kQyjARm6JKon4 none 5 3R42sa62f0zx8hf3M1VVzW
opensuse postinstall 2vbSQj1kd88GpadYsQPgwk none 2 33Jv0W39V83TPh3qWnVm2c

We will provide more details about all these features in follow up posts.



When using Kickstart + Puppet + Cobbler for a number of PCs with various H/W, is there any need for manual steps?...

No Cobbler supports puppet reasonably well and it's trivial to write a kickstart recipe that install puppet and starts it. We do it and it is completely hands off. You might want to take a look at razor as well which is similar to cobbler but more OS-...



Does the razor-microkernel only work on x86 systems? Will it work for Sparc?

Leave a comment