Skip to content

Data Center Compute

Overview

This section of the exam topics primarily focuses on the programmability features of the Cisco UCS Platform, including UCSM and Cisco Intersight. There are many programmable interfaces for UCS platforms, including a Python SDK, Windows PowerShell (via the UCS PowerTool), and various REST APIs. Our study for this section required us to spend a lot of time in our Visual Studio Code development environment, using the UCS PowerTool CLI, writing Python using the UCS Python SDK, and writing Python to interact with the Intersight API.

Section 4.0 Topic Details
  • 4.1 Configure Cisco UCS with developer tools
    • 4.1.a UCS PowerTool
    • 4.1.b UCS Python SDK
    • 4.1.c Ansible
  • 4.2 Describe the capabilities of the DCNM API
  • 4.3 Identify the steps in the Intersight API authentication method
  • 4.4 Construct an Intersight API call given documentation to accomplish tasks such as manage server policies, service profiles, and firmware updates
  • 4.5 Describe the process to implement workflows for physical and virtual infrastructure using UCS Director
    • 4.5.a Pre-defined tasks
    • 4.5.b Custom tasks
    • 4.5.c Script libraries
    • 4.6 Utilize UCS Director REST API browser

Resources

Cisco DevNet

Learning Labs
  • UCS Programmability
    • UCS PowerTool Introduction - All Labs
    • UCS Python SDK Introduction - All Labs
    • UCS PowerTool and UCS Python Intermediate - All Labs
    • Cisco Intersight REST API - All Labs
  • UCS for Application Developers
    • UCS Director REST API Introduction - All Labs

Videos on Demand

Cisco Live

On-Demand Library

Hands-On Learning

DevNet Sandbox Labs
Development Environment Resources

Attention

  • The links below require that the local JupyterLab server is active and listening on http://localhost:8888
    • The Visual Studio Code Development Environment automatically activates the JupyterLab server.

New to JupyterLab? Click Here for an Overview

Tip

  • You may also use Visual Studio Code to explore the same code samples and hands-on exercises. The resources folder within the Development Environment Container contains all of the source files.


Important Intersight Code Usage Notes

Cisco Intersight REST API keys require an HTTP signature, and the initial setup of Intersight authentication requires several manual steps. This repository already includes the Intersight Authentication Repository files recommended by Cisco DevNet. These files provide the functionality required to support Intersight authentication via Python.

If you would like to use the Intersight Python code and Jupyter Notebook examples, you must first perform the following steps:

  1. Obtain Intersight keyId and keySecret data using the Intersight API Authorization instructions.
  2. Create new blank text files within your local copy of the dcauto-study-resources repository with the paths:

    • /resources/ucs/intersight/api_keys/keyId.txt
    • /resources/ucs/intersight/api_keys/keySecret.txt
  3. Paste the contents of your Intersight keyId into the keyId.txt file.

keyId.txt example file contents

4196c31c7562012c339be0b/6129f1c7564612d331be0fd/6096c3552128512d339be2cb

  1. Paste the contents of your Intersight keySecret into the keySecret.txt file.
keySecret.txt example file contents

-----BEGIN RSA PRIVATE KEY----- WuJ1V54N4uHj9rjDRvl9zp2eoA0J6SFB+dwp2Hoj24+pSnr4FPJ/9+PgcRsgUVjq IEHbVKRnrr2xWcXtQnUsa0Dxbdw8biyoo2UiHlCyxUqJEtzSEeeWf9V8hjyqUwtr UyIeWZOhQ2NYbboUgrCMeHhgE6LNTbrGAaSmNZ3BSJnPvRCM7u5xRkFvAoGBAPcN skfHYw23WHTTZD/Z1m1kYZj2LkgAI3/LDQNHaE/enxvq0q+/SrrSVraYBhp8B7xO Vg7gbMXRczSCh5jhQqMm5K1I8ZBlWG0kNdQcuuabAGewNr7bRc+LVZQN+RKsQ8BJ /00bV3GmkD30YYF7pS6LrDiErvYudS0C+9NYeMXgST1OTnRh+YVNisBwvS02Gbyc Uv+Eiy2ZnsIxDiqlvWlGlIrMeLiwmPDVeoM0XyfkZ+5DLFKQYFYABf7LFQuWaKfw LndthGB60BM2nZXohSJzgPsCgYEAi2zlYnD6S/FfMH9kokxUIWR3WBYHRIcfga2c aG9SRVEERoMd6CVzDUBLw7zEJQo+a11iX/70JCfydn37/KGUM/NtNwZlnfI0F1RK NK0KJb7wWZQvMUMagOjHoUjJempRyiEDJpm96VxMWCotG/likj052PxdctvHsRg8 Ad0L3K0CgYAgmXD6dUCJqDOwfs9BBbD6bbr6aE7kitLEoOZ0Rz37MSmenJMt6/mf tIuV+MMhHKWxXtLCUPZjP60nk/d2oR6tN7X75QL9ioduN/QIArZGog== -----END RSA PRIVATE KEY-----

UCS Director REST API Notes
  • API endpoint to request an API key:
    • https://{{ucsd}}/app/api/rest?opName=getRESTKey&user={{username}}&password={{password}}
  • Authentication header name:
    • X-Cloupia-Request-Key
  • Possible query parameters:
    • opName - name of the current operation.
    • opData- payload body.
    • formatType - json (default) or xml.
DCNM REST API Notes
  • DCNM has Multiple APIs:

    • LAN Fabric.
    • L4-L7 Services.
    • Endpoint Locator.
    • Media Controller (DCNM control plane).
    • SAN Management.
  • APIs support GET, POST, PUT, & DELETE operations.

  • API Authentication:
    • API URI Endpoint - /logon
    • Authentication mechanism - HTTP Basic
      • Successful authentication requests return a token which must be sent in subsequent API requests, in a custom header with the format:
        • {"DCNM-Token": token}

Documentation

UCS Developer Tools
Cisco Intersight Programmability
Ansible with UCS and Intersight
UCS Director and DCNM

Insights

  • Preparing for the exam topics in this section was an exercise in us spending almost all of our study time in the CLI of our development environments. If you didn't already notice, we included quite a few DevNet Sandbox Labs in the list of materials that we recommend. We did that for a good reason; those labs are really, really good because they provide many interactive and repeatable exercises for the UCS PowerTool, the UCS Python SDK, and the Intersight REST API. We probably went through each of those lab exercises 10+ times to properly commit UCS programmability to memory. We think all of that practice was time well spent.

  • For our UCS lab resources, we used a combination of the DevNet UCS Management Sandbox and the UCS Platform Emulator. Personally, I preferred to have a couple of UCS Platform Emulator instances as virtual machines on my computer. I did that mostly because I didn't have to reserve DevNet Sandbox resources. That said, we did not find any glaring limitations with either option, so you can't go wrong.

  • For our Intersight study, the API guide was solid gold. We made sure to get plenty of hands-on time with:

  • One more plug for the Intersight API reference, we found it very valuable to get plenty of practice understanding which parameters you can expect to receive in a REST API query response from Intersight. The same is true for our practice determining which Intersight parameters you need to specify in the body of HTTP requests, to either add new objects to Intersight or to modify existing Intersight objects.

  • We ended up getting a bit of tunnel vision with our UCS and Intersight studies, and we almost forgot to get some work in with UCSD and DCNM. The respective DevNet learning DevNet Sandbox Labs for UCSD and DCNM were a big help.

Lessons Learned

👍 You finished the UCS section! That's all of the study resources we accumulated during our exam preparation. If you're interested in some general guidance on your path to DCAUTO certification, click this link to check out a summary of our Lessons Learned.