See LICENSE file.
Project 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 such as Puppet.
This is a 0.x release, so the CLI and API is still in flux and may change. Make sure you read the release notes before upgrading.
More info:
Razor requires tftp and dhcp service. Razor does not have to reside on the same system as either service. The DHCP server needs to configure nextserver request to point at the tftp server. The tftp server needs to provide the appropriate ipxe boot configuration to chainboot from razor service.
The Puppet razor module is located here:
https://github.com/puppetlabs/puppetlabs-razor
The razor module will install Razor for Ubuntu Precise systems. (On Debian wheezy mongodb and nodejs is provided by sid testing repo).
On the Puppet master, add the razor
class to the target node:
node razor_system {
include razor
}
Run puppet apply
to apply the test manifests:
puppet apply razor/tests/init.pp
For other systems, install the following software requirements as appropriate for your platform:
- Ruby >= 1.9.3
- Assorted gems - see (Gemfile)
- Node.js >= 0.6.10 Node.js install with package manager
- Node.js Express package Node Package Manager(NPM) Express install via NPM
- Mongo database >= 2.0.X+
Configure dhcpd to retrieve pexlinux.0 from the tftp server:
filename "pxelinux.0";
next-server ${razor_ipaddress};
*note: in MacOS Fusion 4: /Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf
Configure tftp server to boot ipxe with appropriate razor ipxe config.
default menu.c32
prompt 0
menu title Razor Boot Menu
timeout 50
f1 help.txt
f2 version.txt
label razor-boot
menu label Automatic Razor Node Boot
kernel ipxe.lkrn
initrd razor.ipxe
label boot-else
menu label Bypass Razor
localboot 1
The razor.ipxe configuration can be generated by running:
razor config ipxe
Execute start_node.sh to launch nodejs web service.
-
$RAZOR_HOME: root directory for Razor install
-
$RAZOR_RSPEC_WEBPATH: root directory for dropping RSpec html (optional)
-
$RAZOR_LOG_PATH: Path for razor logs (optional) (default = $RAZOR_HOME/log)
-
$RAZOR_LOG_LEVEL: Verbosity for logs (optional)
0 = Debug 1 = Info 2 = Warn 3 = Error (default) 4 = Fatal 5 = Unknown
./bin - control scripts
./conf - configuration YAML files
./doc - Documentation (YARD)
./images - default images directory
./install - installation bits
./lib - root library folder
./test_scripts - testing scripts
./rspec - unit tests (RSpec)
Start Razor API with:
cd $RAZOR_HOME/bin
razor_daemon.rb