July 26, 2018

ManageIQ and Redfish, sitting in a tree ...

WORDS BY   Tadej Borovšak

POSTED IN   manageiq | redfish | provisioning | hardware

... K-I-S-S-I-N-G. First comes read-only inventory support, then comes ability to perform simple actions, then comes support for system provisioning, um, in a baby carriage ;) And for those of you who do not speak childish, we will be talking about ManageIQ and Redfish integration.

Prerequisites (yes, you read it right)

While it is possible to enjoy this brain dump of ours without any prior knowledge, we would suggest reading the Redfish introduction post first. It will only take a couple of minutes, we will wait.

Done? Great. Off we go.

ManageIQ and hardware

Even if you followed our advice and read the Redfish introduction, we still need to talk about ManageIQ. It is a tool that allows us to (citation stolen from the home page) manage containers, virtual machines, networks, and storage from a single platform.

Did you notice the disturbing lack of physical servers in the citation above? Well, they might be missing in the description, but ManageIQ can manage bare metal servers as well.

First steps in this direction were taken by Lenovo in the form of XClarity provider for ManageIQ. But unfortunately, owners of non-Lenovo systems cannot use it. But do not despair, because now we come to the kissing part ;)

The kissing part

The team at XLAB works on a new provider for ManageIQ: the Redfish provider. With the help of our partners/friends we are working on extending the hardware management capabilities of the ManageIQ to all Redfish-capable systems.

At the moment, we partially support fetching the inventory (we fetch some of the data from the Redfish service like computer systems, and we are steadily adding various details like racks, enclosures, ethernet devices, disks, etc.). We have full support for performing simple system actions like rebooting the server and manipulating the state of the location LEDs. The thing that is still missing is the provisioning part, but we will talk about that at the end of the post.

Now let us see some kissing in action. We will start by adding the new Redfish provider to ManageIQ by navigating to the Compute -> Physical Infrastructure -> Providers. After the page loads, we select Configuration -> Add a New Physical Infrastructure Provider, which will provide a form, similar to the one on the screenshot below.

Adding a new Redfish provider

Adding a new Redfish provider

As can be seen on the screenshot, we are connecting to the Redfish service over https with no server certificate validation, but SSL certificate validation is also available, along with http options that should only be used for testing purposes.

If we click on a newly added provider, we will be greeted by the provider summary page that contains some general data about the Redfish service we just connected to.

Physical infrastructure provider summary page.

Physical infrastructure provider summary page.

Wait, I see servers in summary page. How did they get there? Well, adding a new physical infrastructure provider triggered an inventory refresh, which means that after about a minute, we have all of the systems that are registered in Redfish service available to us in ManageIQ. And clicking on that Physical Servers icon will take us to the server listing.

Clicking on any of those servers will take us to the physical server summary page where we can get the detailed information about the server.

Selected physical server summary.

Selected physical server summary.

Now things get interesting, since not only are we able to look at the server, we can also interact with it. At the top of the server summary page, there are two buttons that are of special interest to us: Power and Identify. The latter is the safer of the two, since playing with the indicator LEDs can be hardly considered dangerous. But we can do some real damage with the Power button, since one of the operations listed is also Restart Immediately, which holds the potential to ruin someone's day.

Available power operations for physical server.

Available power operations for physical server.

If you would like to play with this yourself, you can download the ManageIQ appliance from the download page (make sure you download from the Nightly sections, since Redfish provider is not yet available in stable releases).

After starting the appliance, ssh into it and run the next sequence of commands that will install the mock Redfish server, download sample Redfish service recording and serve it on https://localhost:8000:

# gem install redfish_tools
# wget https://github.com/xlab-si/redfish-recordings/archive/master.tar.gz
# tar -xf master.tar.gz
# cd redfish-recordings-master
# redfish serve --ssl --user test --pass demo lenovo-sr650/

Now let us talk about provisioning.

Bare-metal provisioning

Well, we saved the unimplemented part for last, and there are two main reasons for doing this. Starting a blog post about integration with non-integrated things would be a bit weird (even for this blog ;). But more importantly, now that you know a thing or two about the things that ManageIQ and Redfish can do, we would kindly ask for your input on the topic of provisioning.

Just to give an example of what kind of information we are interested in, we will present a simple use case that we would like to support:

As an administrator, I would like to mount an image as an external drive, boot from it and get access to the remote console to perform installation on specific system.

And now is your turn to shine and make your future work easier: send us scenarios that you would like to see automated, your current workflows that could benefit from Redfish and/or ManageIQ goodness, things that bother you, etc. Anything bare metal related will do.

How to reach us? Head over to GitHub and create new issue. Or send us a tweet to twitter. Or create a comment on Reddit. Or send us an email. Or find us on gitter. Or use an owl or a pigeon to send a hand written letter. Maybe send us a fax (although I am not sure if any of us can operate that bloody thing). Let your imagination roam free!

Thank you and see you next time when we will hopefully talk about the scenarios you sent.