3) A driver from Cisco to make this work with your laptop operating system You still need to install a driver on your laptop to use the USB interface as a serial communications port. This topic describes the typical configuration of hardware, drivers, and device stacks for legacy serial devices that are connected to an RS-232 port. The following diagram shows the typical configuration for a non-Plug and Play Toaster device. Serenum is not used to install a non-Plug and Play serial device.
SSH Cisco Device
Continuing our Networking Automation using Python blog series, here is the Part 4.
We had explained the ways to take a Telnet session to the Switches in our previous posts. Now here we are explaining the steps to SSH to Cisco switch using Python script and to configure IP on vlan interface. IP configuration is an example here, once you have SSH’ed to the switch, you can perform any other configuration as per your requirement, by just modifying the script a bit. Please read part 1 and part 2 to get an idea about how to install python and run your first program.
We are using netmiko module for taking SSH session of device.
My Cisco Devices
What is Netmiko ?
Netmiko is open-source Python library that simplifies SSH management to network devices. This is a common and easy to use library as netmiko supporting multi vendor devices.You can read more about netmiko from here . Following are the some of the vendor devices supported by Netmiko .
——————- advertisements ——————-
———————————————————-
Arista vEOS
Cisco ASA
Cisco IOS
Cisco IOS-XR
Cisco NX-OS
Cisco SG300
HP Comware7
Cisco IOS-XE
HP ProCurve
Juniper Junos
Linux
How to install Netmiko
Netmiko package not available by default. You should have netmiko library installed on your machine .Following are the steps to download and install netmiko in Python 3.6
Step 1. Working internet connection and Python 3.6 installed on machine
Step 2. On command prompt, type following command, this will automatically fetch netmiko from internet and install on your machine
“python -m pip install netmiko”
——————- advertisements ——————-
———————————————————-
Following are the steps to start with netmiko on your script
Import netmiko to your Script
Use the following command to import netmiko package to your script
from netmiko import ConnectHandler
Create Device template
We have to create device template using python dictionary data type.
device= {
‘device_type’: ‘cisco_ios’,
‘ip’: ‘10.10.10.10’,
‘username’: ‘admin’,
‘password’: ‘Beginnersforum’,
‘port’ : 22,
‘secret’: ‘enablepassword’# optional, replace with your enable password ”
}
——————- advertisements ——————-
———————————————————-
where,
device->This is name of template, you can give any name like cisco_2960,juniper_sw etc
‘device_type’ -> Here we are specifying the type of device we are taking ssh,
secret -> Here we are giving the enable password
Port and secret are optional here and the default value for port is 22.
Cisco Device Lookup
Establish an SSH connection to the device
We are establishing SSH connection to device by passing the above defined template
ssh_connect = ConnectHandler (**cisco_switch)
Run Show command
Here the ‘show ip int brief” command will execute on remote device and output will store to ‘result” variable. We can print “result” to see the output on window
result = ssh_connect.send_command(‘show ip int brief‘) print(result)
——————- advertisements ——————-

———————————————————-
Sample output :
Interface IP-Address OK? Method Status Protocol
FastEthernet0 unassigned YES unset down down
FastEthernet1 unassigned YES unset down down
FastEthernet2 10.10.10.10 YES manual up up
Vlan1 unassigned YES unset down down
Complete Script – Download
You can download script (to SSH to a device and add IP address to vlan 10) from here. Please change the file extension from .txt to .py for executing directly.
Also, keeping a copy here in this post below.
from netmiko import ConnectHandler
import getpass
import sys
#create device template
device = {
‘device_type’: ‘cisco_ios’,
‘ip’: ‘192.168.43.10’,
‘username’: ‘username’,
‘password’: ‘password’,
‘secret’:’password’
}
#Getting the user credential
print (“Script for SSH to device, Please enter your credential”)
device[‘username’]=input(“User name “)
device[‘password’]=getpass.getpass()
device[‘secret’]=input(“Enter enable password”)
#Establishing SSH connection
ssh_connect = ConnectHandler(**device)
#changing to enable mode
ssh_connect.enable()
ssh_connect.send_command(‘config t’)
ssh_connect.send_command(‘int vlan 10’)
ssh_connect.send_command(‘ip add 10.10.10.1 255.255.255.0)
ssh_connect.send_command(‘end’)
ssh_connect.send_command(‘write’)
ssh_connect.disconnect()
Hope you enjoyed reading. You can read more posts on Network automation using Python here. Please use the comments section for any queries/suggestions .
Reference :
