Software Defined Waffle with a gitops topping

Over the last two years or so, I have been on adventure with Data Centre Infrastructure renewal. As past posts may allude to, ACI was a big part of what we did, but before anyone gets all dogmatic about it, know that we didn’t go “All in” with that one product, since I personally don’t subscribe to the “DC Fabrics cure all ills” mantra. CLOS fabrics and the various approaches to overlays within them are great at providing stable platforms with predictable properties for speed, latency and scale.

ACI: Controller Upgrades with Python

So I bought my ACI bundles so long ago that they’re still running 1.0(3f). Right now mainline is 1.2(1k), so i’m a bit behind. Using the official Cisco doc I did the first staged upgrade from 1.0 to 1.1 using the Web GUI. I wanted to see what happened in a visual sense. Basically you setup a connection between the APIC and a host that has staged the firmware files, then you setup a policy defining what versions the fabric should be on, and when that should be made active.

ACI: Initial Design Considerations

ACI brings with it many different constructs for operating networks, some of which have analogous equivalence with classical networking, some of which are literally bat-poop crazy. As per usual, you can find lots of resources on how to structure ACI fabrics elsewhere, i’m not going to waste time on what you can do and focus on what I am going to do (roughly). The below Image was unceremoniously stolen from Cisco themselves, in the critical read ACI Fundamentals

The ACI Adventure Begins

Starting yesterday I began to deploy our Nexus 9000 ACI solution into our Datacentre. Scary yet fun times are ahead. Over the course of the project I will do my best to chronicle anonymised info that talks about what we did and how we did it. Some of that may be of use to another ACI hopeful, whereas some will be pretty specific to my environment. One thing I won’t be doing is reinventing the blogging wheel, and I will chose to refer to others that helped me, rather than rehash the same subjects over and over again.

Using CallManager APIs for fun and profit: Part 4 - Python End to End

So by now you can use SoapUI and Python to read info out, and can utilise SoapUI Test Cases to validate, and deliver changes to the CallManager system. Again, please do ensure you have reviewed parts 1-3 before entering into this post. Its entirely contextualised within the series. Up until now what we have been doing is quite focused on a single object being added or sense checked. In this, the final post in this mini series we will be looking at an end to end python script that can be used to add a new end user to the system, with pre and post validation.

Cisco Live 2015

This week is a first for me. I’m at Cisco Live in San Diego. It’s been pretty awesome so far I have to say! Full Disclosure, I was brought here by Cisco to talk to Analysts about ACI. However, I should also point out my only session was closed door feedback on why we chose the solution, and how its helped us to date. Since we are only at the early stages, it was a short conversation.

Using CallManager APIs for fun and profit: Part 3 - Changes

In this the third part of my mini series on using the CUCM API, we start to get further into the Ju-Ju, and check web app changes via the API, before then going on to make a change via the API itself. As before if you haven’t gone through the previous two posts then please, head back to the start and we will see you back here shortly. Whats your motivation today?

Using CallManager APIs for fun and profit: Part 2 - Python

In this part 2 of my API adventure, I will be looking at repeating what we did Part 1 via SoapUI, but this time in python using the suds library. If you haven’t read that yet, then really, please go back and do that. This will not be wildly useful otherwise. Getting SOAP-y with Python suds Yeah I went there… So, we have a process that allows us to programatically look stuff up.

Using CallManager APIs for fun and profit: Part 1 - SoapUI

This is one of those posts that I will constantly refer back to… ;) In my day job it’s clear to me that we need to automate more and more of the dumb day to day stuff. One of those things is Leavers and Starters on our phone system. We employ Cisco CallManager, much like the rest of the world, and if you have ever spent any time with it, you will know that its VASTLY over-complicated to manage.

Ciscoconfparse Wetdream

Ick, I know. Python has long been the language of choice for engineers looking to make their day go that little bit quicker or easier. With deepening skill levels, more and more complex repetitive tasks can be disected and segmented into functions and reuable code, such that a competent scripting engineer can go from blank page to automated process in a matter of hours in most cases. It is for this reason that I sit here to write this - an advocacy for ALL Cisco engineers to down tools and spend however long you need to get good at this.