Cisco Blogs

Cisco Blog > TechWiseTV

Open NX-OS featured on TechWiseTV

Only on TechWiseTV

Only on TechWiseTV

This is the first in a multi-part series where we cover ‘programmability’ for networking.  The idea is to fully review the programming options now available inside the Nexus switches, (3000, 9000).  This first episode covers new access with Linux tools, NX-API and more. Further shows will be diving into the details around Object Models and orchestration partners.

The primary point for any of these is to understand how Cisco Open NX-OS extensibility exposes greater programmability and automation capabilities.  It is fascinating and full of new learning opportunities.  It does not come without a few career questions of course…usually, something along the lines of: do network engineers need to become programmers now too?  

Two answers:  Yes.  It depends.

Networking knowledge and skill should not be undersold here.  Programming capabilities should be additive.  They are useful in just about any tech career and obviously affecting the networking space.  I think it’s foolish to ever quit learning but it does depend on your aspirations, your current level of satisfaction and perhaps how narrowly defined your skill set might be.

Full disclosure: I am not a programmer. I have been learning the fundamentals of python and a few others as I work on this series but I am not hire-able for this skill by any means. But the distinct feeling I get, and the feedback I hear from you guys: its not that hard.  You are probably well versed in scripting for various CLI operations…take it up a few notches and work on some of these ‘readable’ languages that will have similar syntax.  This will give you the ability to judge the appeal of what we are offering with ACI and other solutions much more credibly…and I guarantee you will find ways to get rid of redundant crap and stupid errors you may be fighting with yourself or your team.


Live, interactive, never dull.

September 21, 2015

Programmable networks will forever change the way you manage infrastructure enabling you to dramatically accelerate configuration and deployment of your network, automate time consuming manual tasks, and allocate IT resources far more efficiently.  Are you ready for the revolution?  

Discover how to create a programmable network as we discuss and demonstrate the NX-API and NX-API REST (Object Model) in detail. Understand how Cisco Open NX-OS extensibility exposes greater programmability and automation capabilities that eliminate costly manual errors.

– You can sign up at the workshop tab when the date gets a bit closer,


Nicolas Delecroix in the TechWiseTV Lab

Nicolas Delecroix in the TechWiseTV Lab

TechWiseTV 176: Open NX-OS: Programmability


Two great experts on this episode.

Six Key Points: What OPEN means for NX-OS

Six Key Points: What OPEN means for NX-OS

Shane Corban shares Six Key Points: What OPEN means for NX-OS

Changes made across the software stack to address Extensibility, Openness, Programmability.

  1. Auto Deployment (Bootstrap and Provisioning)
    • Added support for PXE server, operationalize NX-OS software to match an existing server environment
  2. Extensibility – how we package software
    • We did not use to expose much beyond a bash shell
    • Now you can install native RPM’s, and third party applications running processes as they would on a Linux server
  3. Open Interfaces
    • We are now adding support to leverage Linux like tools for debugging, configuration and troubleshooting…manipulate those front panel ports as native Linux interfaces within our switch software stack.
  4. Application Integration (Adaptable SDK)
    • Published an SDK, a build environment that you can install on any Linux server, download the build agent, and put your source into that directory structure and build into an RPM for installation and run it natively.
    • Build your own custom automation apps, monitoring agents, and have them run natively on our platform
  5. Programmability Tool Choice
    • Sandbox
    • We have a native Python shell today that has a Native Cisco Library that you can utilize for automation
    • NX-API – the ability to embed CLI commands and structured data (JSON, XML) for execution on the switch via HTTP/HTTPS Interface to get back structured data back on show commands.
  6. Management Tools
    • Support for Chef and Puppet
    • Agents will be publicly available on the enterprise sites
    • Support for Open Stack, Neutron

NX-OS is now more modular, more open, more capable of third party integration providing a  wide variety of programmability choices ideal for Dev-Ops environments.  

Five case study examples

Five case study examples

Nicolas provides five case study examples. 

  1. Checking Software Version
  2. Using Python script with NXAPI and JSON to pull version numbers
  3. Python script to query multiple switches to check compliance against a specific version
  4. VLAN Provisioning
  5. Checking for proper VLAN provisioning

Special thanks behind the scenes to Rami Rammaha and Mark Jackson


More Reading:

Cisco Nexus 9000 Programmability Guide

Matt Oswalt is a great writer. You should follow his blog: Keeping it Classless.   I enjoy his angles on things.  Read up on his blog entry: Evolution of Network Programmability, Nexus 9000 NX-API,NX-API Update.

Some Learning Basics:

What do you think still needs to be covered?  I would love any thoughts on how the rest of this series should be shaped.  Leave your comments below and just to make sure…tag me on twitter.  We are diving into Object Models (taping next week) and then some angle with the Orchestration Partners.   Case in point: Puppet Labs is making available today a native Puppet NX-OS agent and Cisco Puppet Module.

Let me know!


Tags: , , , , , , , , , , , ,

Cisco UCS Power Scripting Contest Update #3

Many IT organizations use Microsoft PowerShell to automate and accelerate data center management tasks. The Cisco UCS PowerTool module for PowerShell provides users a comprehensive list of cmdlets to manage all components of Cisco UCS.  Users can use these cmdlets to write PowerShell scripts to simplify, speed up, and error proof UCS management and deployment. Read More »

Tags: , , , , , , , , ,

Cisco UCS Power Scripting Contest Update #1

The scripts have started rolling in and I wanted to update you on what’s been posted to date. Maybe you could use them in your environment? To review these scripts and participate in the contest, head over to the Cisco Communities. Read More »

Tags: , , , , , , ,

XMPP: A Power Tool in Your Tool Box

Extensive Message Protocol (XMPP) is an open standard protocol based on XML (Extensible Markup Language). XMPP is designed to transport instant messages (IM) between entities and to detect online presence. It supports authentication of IM application and secure transport of messages over SSL/TLS. In XMPP entities can be bots, physical users, servers, devices or components. It’s really a powerful tool that has great potential for system administrators to add to their toolbox because:

  • XMPP is powerful
  • XMPP with Python is only 12 lines of code – trust me, it’s easy!
  • XMPP only requires a single query for multiple nodes
  • Status message can be used to track host presence

The Power of XMPP

For those of you that are not familiar with XMPP, it not only supports one-to-one messaging between entities but it also supports multi-party messaging (which enables an entity to join a chat room for the exchange of messages with several participants). The messages can be text messages embedded in XML format but XML can also be used to send control messages between entities as we will see with the presence stanza in a bit.

XMPP is widely used; Google uses it (for its Hangout application – formerly google chat) and so does Yahoo and MSN. At Cisco, we use Cisco Jabber extensively to communicate internally. The XMPP client function is now integrated in the Cisco Nexus 5000 series with the release 5.2(1)N1(7) and the Nexus 6000 series with the release of 7.0(0)N1(1). XMPP is an integral part of the single console access for Dynamic Fabric Automation (DFA) which is a powerful framework described in my previous blog.

The new Data Center Network Manager (DCNM) 7.0(1) is delivered as an OVA file that can be deployed quickly on an existing VMware-enabled server. Although DCNM comes with a lot of features that simplify the deployment of the Data Center fabric, we can pick and choose any service we want to use independently – which is great since DCNM comes with Cisco Jabber XCP and is license free. If you already have a XMPP service installed (like Openfire or ejabberd), it will not be a problem because everything discussed here is valid on any standard XMPP implementation.

On NX-OS devices, the XMPP feature is activated by configuring ‘feature fabric access’ and is part of the Enhanced L2 license (ENHANCED_LAYER2_PKG). Once activated, the switch becomes a XMPP client that needs to be registered on the server. In order to register it, XMPP requires the use of fully qualified domain names (FQDNs) to identify the domain server. If the switch does not have access to a DNS service, I recommend that you use the switch management network for messaging and a static host–to–IP address mapping in the switch configuration.

The switch will use its hostname to login to the XMPP service. If your XMPP server does not support auto-registration, you will need to register the switch and the rooms in the XMPP database beforehand. The DCNM OVA requires users and groups to be created via the CLI, and example of this user and group creation is:

[root@dcnm-ova ~]# appmgr add_user xmpp -u leaf0 -p cisco123
User added.
[root@dcnm-ova ~]# appmgr add_user xmpp -u leaf1 -p cisco123
User added.

User added. Read More »

Tags: , , , , , , , ,

Cisco Mobility Services APIs go RESTful

As a product manager, I am happy and excited to tell you that Cisco Mobility Services Engine (MSE) now supports REST based APIs. Why am I happy and excited you ask? MSE’s REST based APIs allow web app developers to rapidly develop location aware apps with ease.  Let me walk you through this new feature at a high level, and my colleague will take you through a closer look feature blog next week.

Mobility Services Engine and API support

For readers who are not familiar with the Cisco Mobility Service Engine and the APIs, here’s the gist:

–          Cisco Mobility Services Engine (MSE) works in conjunction with Cisco Wireless LAN Controller (WLC) and Cisco Aironet Access Points (APs) and computes real time location for all Wi-Fi end-points using RSSI based triangulation algorithms.

–          MSE stores real time and historical location of Wi-Fi clients in its database making it a gold mine of data for indoor location. (Remember that GPS technology is not effective for indoor location)

–          This rich store of indoor location data is now available to app developers to query through a REST based API over a secure HTTPS connection.

What can I do with MSE REST APIs?

MSE REST APIs allow web developers to query MSE location database using the HTTP(S) GET method. HTTP response payload can be received in XML or JSON format. Here is a list of resources that are accessible over the REST API. Read More »

Tags: , , , , , , , , , , , , , , ,