DellEMC

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. Following that line of thought, the industry has coined the expression “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 were traditionally managed with the DellEMC OpenManage or through the iDRAC and its “racadm” command line tool. The Redfish API has been offering a complete different approach since it was introduced 5 years ago in the 13G servers

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 resources 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 in the API simulator provided by the DMTF:

If you have access to a real Dell PowerEdge server and you want to get familiar with the Redfish API you can get a Postman collection from the Project Vision Github repo. It provides examples of how to query the various elements in the server. It also shows how to change the boot order, reboot and change the name of the server in the iDRAC. These are tasks are very valuable to solve bare metal provisioning use cases:

https://github.com/cermegno/Project-Vision

This repo contains Postman collections for various DellEMC products. If you are new to Postman our previous blog article will show you how to use it

This document provides more detailed information about the REST API of iDRAC9

When you are ready to start coding you can find sample Python and PowerShell scripts that solve a multitude of use cases in this Dell Repo

https://github.com/dell/iDRAC-Redfish-Scripting

If on the other hand, you prefer to use a Configuration Management or Provisioning tool instead of interacting with the raw REST API, you have the following resources publicly available from the Dell Github page:

Ansible – https://github.com/dell/redfish-ansible-module
Terraform – https://github.com/dell/terraform-provider-redfish

Finally if you want don’t have access to a real server but still want to see this capability in action, I strongly recommend the beginners videos from Jonamiki

1 reply »

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.