Puppet Razor module will installation the Razor server on EL6, Debian 7, and Ubuntu 12.04, or newer versions of those platforms. It should be reasonably portable across platforms, and has decent support for failing well on unsupported platforms.
It is considered part of the overall Project Razor infrastructure, so you can get help using the module or enhancing it over at the main Project Razor site on GitHub.
The puppet module tool in Puppet Enterprise 2.5.0+ and Puppet 2.7.14+ resolves dependencies automatically.
Puppet module dependencies for razor module:
Install puppetlabs-razor module and dependencies into module_path:
$ puppet module install puppetlabs-razor
Preparing to install into /etc/puppet/modules ...
Downloading from http://forge.puppetlabs.com ...
Installing -- do not interrupt ...
/etc/puppet/modules
└─┬ puppetlabs-razor (v0.7.0)
└─┬ puppetlabs-java (v1.0.1)
└── puppetlabs-stdlib (v4.1.0)
Then, on your Puppet master, add razor class to target node -- or just use puppet apply
as normal:
node razor_system {
include razor
}
Once the Razor server is installed, you have a handful of tasks to complete:
- Install PostgreSQL and create a Razor database.
- razor-server requires a TCP connection to the database, due to JDBC driver limitations.
cp /opt/razor/config.yaml.sample /opt/razor/config.yaml
- Edit that file to reflect your local settings.
- Run
razor-admin -e production migrate-database
to update the database content. - Configure your DHCP service.
- see
examples/isc-dhcpd-example.conf
for an example with the ISC DHCP daemon. - see the wiki documentation for PXE setup for full and gory details
- see
At that point everything should be working correctly.
This module does not install the Razor client, used to interact with the server. This is available as a Ruby gem, requiring Ruby 1.9.3, and is usually installed on developer workstations rather than the Razor server system.
Installing this is left as an exercise to the reader, but:
puppet resource package name=razor-client provider=gem ensure=latest
- libarchive: set the package name for libarchive explicitly.
- libarchive is require for ISO unpacking; if your system is not supported by autodetection you can set a manual package name instead.
A wide array of folks have contributed to the Razor module, including a pile
of hugely valuable external contributions. The list was getting too long to maintain inline, but you can see the full list of contributors in the CONTRIBUTORS
file.