Cisco Blogs


Cisco Blog > Data Center and Cloud

Introducing the ACI Toolkit

Cisco, in its quest to embrace programmability, has created what is called the ACI Toolkit, which is basically a combination of an NX-OS like CLI and some custom python scripts. Although this toolkit doesn’t allow you to do all configurations within ACI, it can be used to create and show the common configuration and administrative actions that may be used daily. It’s also great for someone who is just starting to migrate to a more programmatic way of doing things, as it’s easily understandable to folks used to common networking commands.

If you’re not familiar with ACI, check out this short video to get a brief understanding of some of the basic constructs used and for a deeper dive go to www.cisco.com/go/aci. These concepts will help you to understand some of the configuration options available with the ACI Toolkit.

ACI - Toolkit

The toolkit’s python libraries are all available on GitHub.com and it’s fairly simple to access. All you need to do is open a terminal window on your computer and enter the following command:

git clone https://github.com/datacenter/Simple-ACI-Toolkit

This command will download the necessary libraries to use the ACI Toolkit syntax. Then to run CLI commands from your APIC type:

python acitoolkitcli.py -l admin -p password -u https://APIC_IP

This will connect you to your APIC so you may run commands that will help you build your application network profiles as shown in the three tier application in the picture above. We can do things such as switching tenants, creating contexts, creating bridge domains, and creating end point groups (EPGs).

Here are some examples of the common commands we might use to create these logical objects.

Switch to a tenant configuration mode:

  • fabric# switchto tenant <tenant-name>
  • fabric-tenant# switchback

Create a Context and don’t enforce contracts on it:

  • fabric-tenant(config)# [no] context <context-name>
  • fabric-tenant(config-ctx)# [no] allow-all

Create a bridge domain and assign it to a context:

  • fabric-tenant(config)# [no] bridgedomain <bd-name>
  • fabric-tenant(config-bd)# [no] context <context-name>

Create a subnet under the bridge domain:

  • fabric-tenant(config-bd)# [no] ip address <ip-address>/<masklength> [name <subnet-name>]

 

As you can see from these examples the syntax will be very familiar to network engineers. We can also use the ACI Toolkit combined with the Python SDK to actually script these things. It makes scripting a little easier because we’re again using simpler syntax. Below is an example of configuring a tenant using Python in conjunction with the toolkit:

from acitoolkit import *

from credentials import *

tenant = Tenant (‘Customer1’)

context = Context (‘customer1-router’, tenant)

bd = BridgeDomain(‘BD1’, tenant)

bd.add_context(context)

bd.add_subnet(‘10.0.0.1/24’)

app = AppProfile(‘web-and-ordering’, tenant)

vlan10 = EPG(‘VLAN10’, app )

vlan10.add_bd(bd)

vlan20 = EPG(‘VLAN20’, app )

vlan20.add_bd(bd)

Currently the ACI Toolkit may not be used to create service graphs, VMM Domains, SPAN, Atomic Counters, and or to see most telemetry and health score information. However, the toolkit still gives us a lot to work with and automate as far as basic configurations go. For more information please see the guide found here (http://datacenter.github.io/acitoolkit/).

Tags: , , ,

Engineers Unplugged S6|Ep4: onePK

August 13, 2014 at 10:36 pm PST

In this week’s episode of Engineers Unplugged, we welcome for the first time (and not the last) guest host Janel Kratky (follow her @jlkratky)! She’s hosting Jason Pfeifer and Glue Network’s Gregg Wyant as they discuss onePK and how to apply it to the real world. You don’t want to miss this one, it ends with a Glunicorn.

If you would like to become Internet Famous, and strut your unicorn talents, join us for our next filming session at VMworld 2014. Tweet me for details!

This is Engineers Unplugged, where technologists talk to each other the way they know best, with a whiteboard. The rules are simple:

  1. Episodes will publish weekly (or as close to it as we can manage)
  2. Subscribe to the podcast here: engineersunplugged.com
  3. Follow the #engineersunplugged conversation on Twitter
  4. Submit ideas for episodes or volunteer to appear by Tweeting to @CommsNinja
  5. Practice drawing unicorns

Join the behind the scenes by liking Engineers Unplugged on Facebook.

Tags: , , , , ,

The Napkin Dialogues: Nexus Programmability, Part II

July 9, 2014 at 8:48 am PST

When last we left our hero, he (that is, me, or I) was getting a crash course in Nexus programmability and trying to understand what all of this stuff meant. I had plied Jim* with beer in order to get him to explain to me – using the available napkins in the bar – what the technology was, what it meant, and why I should care. Read More »

Tags: , , , , , ,

The Napkin Dialogues: Nexus Programmability, Part I

June 30, 2014 at 12:08 pm PST

I know that I take a different approach to learning new things than most people. At least, I know my approach is different than the way people present them. The good news is that when I get something, I really get it. However, when looking at the juggernaut that is “Software-Defined X,” or even “programmability,” I know that I’m still a long, long way away from feeling like I have a handle on it.

When I wrote the previous blog post on some of the key “Open” terms were in programmability, I was overjoyed to find out that there were a few people who also had difficulty getting a grip on this too.

In other words, I’m not alone!

There is still a bewildering amount of information that I still need to learn, however, and it seems to me that if I resonated with a few people about these high-level topics, there are probably a few more who are curious about what lies beneath as well. Fortunately I work for a company (and with a lot of people) who have been willing to help me. Read More »

Tags: , , , , ,

#EngineersUnplugged S5|Ep2: ACI and Traditional Networking

March 12, 2014 at 10:53 am PST

This is an amazing episode of Engineers Unplugged, where two technologists from the community, Hal Rottenberg (@halr9000) and Colin Lynch (@ucsguru) discuss how ACI disrupts traditional networking thinking while leveraging current networking skills. It’s a great tutorial for anyone looking to understand what application centric infrastructure really means.

Will network engineers all become programmers?

Watch and see:

This unicorn comes with birthday wishes--Happy 5th Birthday UCS!

Happy Birthday UCS Unicorn courtesy of Colin Lynch, with commentary by Hal Rottenberg!

Happy Birthday UCS Unicorn courtesy of Colin Lynch, with commentary by Hal Rottenberg!

**The next Engineers Unplugged shoot is at Varrow Madness, Charlotte, NC, March 20, 2014! Contact me now to become internet famous.**

This is Engineers Unplugged, where technologists talk to each other the way they know best, with a whiteboard. The rules are simple:

  1. Episodes will publish weekly (or as close to it as we can manage)
  2. Subscribe to the podcast here: engineersunplugged.com
  3. Follow the #engineersunplugged conversation on Twitter
  4. Submit ideas for episodes or volunteer to appear by Tweeting to @CommsNinja
  5. Practice drawing unicorns

Join the behind the scenes by liking Engineers Unplugged on Facebook.

Tags: , , , , , ,