jaybuff / Razor

Razor is next generation provisioning software that handles bare metal hardware and virtual server provisioning

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project Razor

License

See LICENSE file.

Introduction

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:

Nickapedia.com

Puppetlabs.com

Authors

Installation

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.

Puppet Prereqs:

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

Manual Prereqs:

For other systems, install the following software requirements as appropriate for your platform:

Razor:

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.

Environment Variables

  • $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

Directory structure

./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)

Starting services

Start Razor API with:

cd $RAZOR_HOME/bin
razor_daemon.rb

Notes

About

Razor is next generation provisioning software that handles bare metal hardware and virtual server provisioning

License:Other


Languages

Language:Ruby 97.7%Language:JavaScript 2.2%Language:Shell 0.1%