Razor is next generation provisioning software that handles bare metal hardware and virtual server provisioning
Clone or download
Failed to load latest commit information.
acceptance (maint) Include beaker-pe in acceptance tests Aug 7, 2018
bin (maint) Consolidate razor-admin wrappers Jun 27, 2018
brokers Use single source Windows agent installer for puppet-pe broker Jan 13, 2017
build-winpe Modifications to support Windows ADK 10 Jan 4, 2018
db/migrate Update to JRuby 9000 and Torquebox 3.2.0 Feb 12, 2018
doc (maint) Update NEWS.md and api.md with info. on the 'depth' parameter Apr 26, 2018
ext (maint) Update documentation May 30, 2018
hooks Fix r_just no implicit conversion error Feb 13, 2016
integration Add acceptance and integration tests May 2, 2018
jars Updating Shiro framework Sep 8, 2014
lib Add a 'depth' parameter to the /api/collections/<type> endpoint Apr 26, 2018
locales (packaging) Updating the razor-server.pot file Jul 9, 2018
log Initial commit Jun 11, 2013
spec (maint) Add spec test for hook with STDERR and "error" output Jul 25, 2018
tasks Remove EOL Ubuntu Tasks Apr 3, 2018
.gitattributes Port over pe-razor-server files to razor-server Feb 21, 2018
.gitignore Port over pe-razor-server files to razor-server Feb 21, 2018
.travis.yml Update to JRuby 9000 and Torquebox 3.2.0 Feb 12, 2018
.yardopts Add yardoc support, using GitHub Format Markdown Jun 18, 2013
Gemfile Update to JRuby 9000 and Torquebox 3.2.0 Feb 12, 2018
Gemfile.lock (maint) Update gem dependencies Sep 5, 2018
LICENSE Revamp the README.md; add an actual LICENSE Aug 21, 2013
MAINTAINERS Add internal_list key to MAINTAINERS Sep 27, 2016
NEWS.md (maint) Update documentation May 30, 2018
README.md (maint) Reference latest version of microkernel in docs Mar 21, 2017
Rakefile (maint) Add rake tasks for running acceptance tests Jul 25, 2018
app.rb Add a 'depth' parameter to the /api/collections/<type> endpoint Apr 26, 2018
config.ru Integrate `queue_classic` into razor-server Jun 27, 2013
config.yaml.sample (maint) Update config.yaml.sample to use correct repo_store_root Jun 30, 2016
config.yaml.travis (maint) Add Travis support Apr 25, 2017
shiro.ini Add doc/shiro-encryption.ini Mar 23, 2018
torquebox.rb Asynchronous execution of hooks Nov 18, 2014


Razor server

Razor is an advanced provisioning application which can deploy both bare-metal and virtual systems. It's aimed at solving the problem of how to bring new metal into a state where your existing DevOps/configuration management workflows can take it over.

Newly added machines in a Razor deployment will PXE-boot from a special Razor Microkernel image, then check in, provide Razor with inventory information, and wait for further instructions. Razor will consult user-created policy rules to choose which tasks to apply to a new node, which will begin to follow the task directions, giving feedback to Razor as it completes various steps. Tasks can include steps for handoff to a DevOps system such as Puppet or to any other system capable of controlling the node (such as a vCenter server taking possession of ESX systems).

Getting in touch

Getting started

The Wiki has all the details; in particular look at

What does Razor do anyway?

Razor is a power control, provisioning, and management application designed to deploy both bare-metal and virtual computer resources. Razor provides broker plugins for integration with third party configuration systems such as Puppet.

Razor does this by discovering new nodes using facter, tagging nodes using facts based on user-supplied rules and deciding what to install through matching tags to user-supplied policies. Installation itself is handled flexibly through ERB templating all installer files. Once installation completes, the node can be handed off to a broker, typically a configuration management system. Razor makes this handoff seamless and flexible.

Razor MicroKernel

The MicroKernel is a small OS image that Razor boots on new nodes to do discovery. It periodically submits facts about the node and waits for instructions from the server about what to do next, if anything.

A prebuilt archive is available.

Razor Client

The Client is a small Ruby script that makes interacting with the server from the command line easier. It lets you explore what the server knows about your infrastructure, and modify how machines are provisioned, by interacting with the Razor server API



Razor is distributed under the Apache 2.0 license. See the LICENSE file for full details.