Project Hanlon (v2.2.0)
Project Hanlon is a power control, provisioning, and management application
designed to deploy both bare-metal and virtual computer resources. Hanlon
provides broker plugins for integration with third party such as Puppet.
Hanlon started its life as Razor so you may encounter links to original
created-for-Razor content. The following links, for example, provide a
background info about the project:
Project Hanlon is versioned with semantic versioning, and we follow
the precepts of that document.
How to Get Help
We really want Hanlon to be simple to contribute to, and to ensure that you can
get started quickly. A big part of that is being available to help you figure
out the right way to solve a problem, and to make sure you get up to
You can always reach out and ask for help by email or through the web on the email@example.com
mailing list. (membership is required to post.)
If you want to help improve Hanlon directly we have a
fairly detailed CONTRIBUTING guide in the repository that you can
use to understand how code gets in to the system, how the project runs, and
how to make changes yourself.
We welcome contributions at all levels, including working strictly on our
documentation, tests, or code contributions. We also welcome, and value,
input about your experiences with Project Hanlon, and provisioning in general,
on the mailing list as we discuss how the project should solve problems.
Follow wiki documentation for Installation Overview
This is the official list of users with "committer" rights to the
Hanlon project. For details on what that means, see the CONTRIBUTING
guide in the repository
This is a hand-maintained list, thanks to the limits of technology.
Please let Tom McSweeney know if you run
into any errors or omissions in that list.
Hanlon uses an associated Hanlon-Microkernel instance to discover new nodes.
Pre-build images of the current Hanlon-Microkernel (v2.0.0) are officially
On that page, you will find three Microkernel images (
hnl_mk_prod-image.2.0.0.iso). Those correspond to the
debug, development and production Microkernels (respectively). The difference between
them is as follows:
In a debug Microkernel, remote access to the Microkernel is allowed for the
user via SSH. The
tcuser is also logged into the Microkernel instance automatically
when the node boot process is complete. This Microkernel is useful for debugging
problems with the process of booting and reporting in to the Hanlon server, but
should not be used in production.
In a development Microkernel, remote access to the Microkernel is allowed for the
tcuser via SSH. Local access (via the console) is also enabled for the
the node boot process is complete, but a password is required. This Microkernel type
is useful for developers working on Hanlon, where remote access to the Microkernel
might be required. While slightly more secure than the debug Microkernel (above),
this Microkernel is also one that is not intended for use in a production.
In a production Microkernel, remote access to the Microkernel is disabled completely,
as is local access (via the console). This Microkernel is intended for use in a
production environment, where access to the resources of the underlying node through
the Microkernel could prove to be a security risk. Obviously, disabling local and
remote access to the Microkernel makes this type of Microkernel unsuitable for development
(on either Hanlon or the Hanlon-Microkernel).
You can find more information on the Microkernel and on the process for building your own
Microkernel images at the Hanlon MicroKernel project page:
Project Hanlon is distributed under the Apache 2.0 license.
See the LICENSE file for full details.
The following links contain useful information on the Hanlon (and Hanlon-Microkernel) projects
as well as information on the new CSC Open Source Program:
- Tom McSweeney's blog entry on the availability of this project:
Announcing Hanlon and the Hanlon-Microkernel
- Dan Hushon's blog entry on the new CSC Open Source Program:
Finding Value in Open Source
This set of links, on the other hand, provide an introduction to the original Razor project
(and, as such, may be of interest to those new to the Razor/Hanlon community):
Finally, this link provides information on the Puppet Labs Module that was written to manage
the deployment and configuration of Razor by Puppet.
- The Puppet Labs Razor Module:
Even though it doesn't support Hanlon, the information in that blog may provide useful to those
who would like to develop a corresponding Hanlon module since the Hanlon is firmly rooted in the
original Razor project.