Intro to Redfish API on Dell servers

With the advent of public cloud organisations of all sizes are more and more looking to implement the same agile operational models that the hyper-scale cloud providers offer. As we would say "cloud is not a destination but an operational model". To this end we have seen in the last few years a proliferation of RESTful API's to manage pretty much everything in the infrastructure world. In particular the Redfish API is the joint effort by all server manufacturers to provide an API through which to consistently manage any vendors hardware. This resulted in a DMTF industry standard

Dell servers have traditionally managed through the OpenManage tool or through the iDRAC and its "racadm" command line tools. The adoption of the Redfish API with 13G servers fitted with the "DRAC with Lifecycle Controller" offered a complete different approach. The root of the API is accessed through the iDRAC as follows:

https://<iDRAC IP>/redfish/v1/

The Redfish API itself is very well thought and uses JSON and ODATA to standardise the data format across vendors. From the root it branches out into several categories as shown below. Note how it distinguishes between systems and chassis. This opens up the possibility of managing rack mounts, chassis-based and eventually even composable systems with a single API.


The DMTF has created a number of mockups in their website which allow you to explore what the Redfish API looks like for systems as disparate as:
  • Rack-Mounted Server
  • Rack-Mounted Server with Local Storage
  • Bladed System
  • Simple SAS Fabric
  • Bladed Partitions
  • Composable System
You can check them out by yourself here:


The following video first provides a tour of the DRAC. In particular you can see CPU, RAM and Disk (physical and logical) information as well as the log. Then we run a Python script which leverages the "requests" library to query the same information by navigating the various branches of the API. As you will observe the information obtains that way matches what we see in the DRAC in first place. If you are interested in the script you can visit the companion Github repository. This repo was created during the Pied Piper program at DellEMC:

https://github.com/cermegno/Redfish-lesson

One of the coolest things of the Redfish API from my point of view is that it contains its own metadata. You can query this information to understand what each object in the API is. You will see that this is presented in an XML format

The video then shows how to examine the boot order of the server. This can also be changed in order to for example install a new OS in the system via PXE boot. To that end, at the end of the video I demonstrate how to use the Redfish API to restart the server. Without more preamble I leave you the video.



Comments

Popular posts from this blog

Sending PowerStore alerts via SNMP

Electronic Nose - eNose

Use Vagrant to deploy to AWS