So lets start off with I am an old dog and I am learning new tricks. My entire career I have avoided the dreaded programing. In college I slid by my degree requirement for a coding class by taking Visual Basic for Industrial applications. I hated it. Debugging drove me nuts and there is still a hole in my bedroom wall at my parents where that brick of a VB found itself one night around 2am. From there I was just gun shy and honestly had plenty of other things going on that could afford to ignore learning anything outside of the basics of HTML and CSS.
Cut to today, I am in my late 30’s and going through a career transition of sorts. My timing for the transition is decent because the network industry is also going through a bit of a transition. For awhile now all the cool kids have been doing automation and Dev/Ops in the Server, OS and application space. But networks are trickier. I will leave out all the discussion of why because that horse has been beat dead a few times online. In this transition over the past six months or so I have found myself doing things I would never have guessed even a year ago.
So what types of things you ask. Ok for one I am now doing dev work. Mind you it is not great dev work and I will never be a professional developer but I have been writing code. In one case even some minor code for a library that is now in production with clients…scary huh. But mostly I am coding to learn and help move other people along the Path to Automated Networking including myself.
Back in 1996 when I started this game there were lots of things I had not done. Now days it seems like everyone I meet is 18, running service provider networks and writing code in all the hip new languages. That is not the reality of the world. The reality is that we all start someplace. So I am going to create some content with the assumption you have never done some of the basics. This first one is a video showing a basic Ubuntu Server 14.04 LTS install. Enjoy.
In this session of A Few Easy Steps, we will be doing the initial setup for automation on a Cisco IOS Device. In General this will work on any Cisco IOS Device. Session Prerequisites:
- You have a Cisco Console Cable
- You have a serial port
- You have a Terminal Program that you can access your Serial Port
- Hostname is already set
- Domain name is: SPC.DEV
- RSA modulus is 1024 bits
- Our Admin interface is: FA0/0
- The Interface has already had its IP Address assigned
- Enable Password is: password
- Username is : pytest
- Password is: pytest
- We are using VTY ports 0-5
Our goals of this session are:
- Setup IP Domain Name
- Create RSA key for SSH
- Set Enable Password
- Setup Username
- Setup Password
- Turn interface FA0/0 on
- Enable SSH on VTY 0-5
- Set Login to Local Authentication
So far so good. In Part 1 we connected to a Cisco switch and and performed basic Authentication with Expect. Part 2 we expanded on that and added configuration to our code that added a VLAN and configured an interface. But as I have already stated we are writing quite a bit of code just to configure a single switch. So the next step is to add multiple devices and flat files. I mean yeah we could setup a static list in our code and add our devices to that but why? Our real goal here is to create functional code that we can use to do real things in real networks. So that means pulling a list of devices from NMS, IPAM or even our nasty old excel files. Plus this helps us address the idea of adding authentication files and other flat file resource pools. Eventually we will transition the use of flat files into databases so we can do even more cool stuff but we will hold off on that for now.
When you setup to learn new things you are bound to get a bit sideways once and awhile. With writing code I think that is even more the case. You start out with an idea and if your lucky like I have been so far it starts to flow and things just work. But in the spirit of learning in manageable chunks and sharing the experience with you I started targeting a single host. When I tried to make the leap to multiple hosts things got interesting. Along with that it became clear that these posts were going to get messy quick. So lets clean all that up and move on to the cool stuff. Read more