Cisco IMC 3.0 includes the Redfish server management API to help automate common management tasks. Redfish provides a scalable, secure way to manage your servers that complements the Cisco UCS Unified API that is also part of the IMC.
Programming Your Server Infrastructure
“DevOps” is a frequently used term, and the “Dev” emphasizes that a large part of any DevOps tool or process is Development. Any type of software development requires programming, and all programming requires an application programming interface, or API, to control whatever is being programmed. “Hello World” in your favorite programming language still uses an API (or multiple APIs) to get characters printed on the screen.
In the world of server infrastructure management, APIs are the key to managing the wide variety of physical and logical resources that make up a server. From BIOS settings to management controller user accounts, a complete API will let you control all server resources in the automation framework of your choice. Since release in 2009, all Cisco UCS platforms have provided a scalable, secure API that provides complete control of all aspects of server management. Cisco UCS has also supported legacy management standards such as IPMI to allow UCS management through a wide variety of management tools.
As part of a push to modernize standards like IPMI, the Distributed Management Task Force (DMTF) has developed the Redfish server management standard. Redfish helps secure server management with all traffic passed over the web standard application layer protocol HTTPS on the standard HTTPS port. Redfish also specifies use of a RESTful API, and more than just specifying a RESTful API Redfish also specifies use of the Open Data Protocol, or OData, RESTful API standard. OData is used by many enterprise software application suites and helps ensure interoperability of “RESTful” APIs.
Comprehensive Management: Redfish and the Unified UCS API
While Redfish provides a way to query server resources and perform some common actions like server power on/off, operations such as storage controller configuration are not currently part of the specification. Fortunately, the IMC’s UCS Unified API can be used to complement the Redfish API and provide additional functionality where needed. Like Redfish, the UCS API is built on top of an object model with objects organized into a tree structure. The UCS API also uses HTTPS and even the URLs used to access resources are similar between the Redfish and UCS API (IPs, ports, and user credentials are the same with either API). When programming operations are performed in a higher-level scripting language like Python, many of the specific API differences are abstracted away.
Cisco is also actively working to extend the capabilities of Redfish. With Cisco IMC 3.0, extensions are provided for firmware update and IMC management including technical support downloads, IMC configuration backup, and IMC configuration restore. Visit this GitHub repository to see a Python scripting example of both APIs in use with a common configuration file.
Also, check out this demo video which shows how the Redfish and UCS APIs can be used together for complete server management.