netmiko is a Python library that helps you log in and operate network devices with SSH. It currently supports Cisco IOS, Juniper JunOS, Palo Alto PAN-OS, and more. Login, config mode transition, logout, etc. are abstracted as methods, and individual commands are a type of library that directly specifies commands. It is less abstract than NAPALM in this respect. It can be installed with pip intall netmiko
etc.
--GitHub repository - ktbyers/netmiko: Multi-vendor library to simplify Paramiko SSH connections to network devices
In netmiko, it is usually necessary to set a parameter called device_type
when creating a connection object, and in Cisco IOS it was specified as" cisco_ios ".
device_When explicitly specifying type
remote_device = {'device_type': 'cisco_ios',
'host': '192.168.0.254',
'username': 'user',
'password': 'passwordpassword'}
The recently released version 1.3.0 adds a feature called "SSH autodetect" that automatically detects device_type
.
As far as I read auto_detect.py, the models that can be automatically detected are limited to the models originally supported by netmiko. It seems that there is, but this time I tried to check if it can detect Cisco IOS for the time being. (Almost the same as the example in the comment in the above source)
Automatic detection
from netmiko.ssh_autodetect import SSHDetect
from netmiko.ssh_dispatcher import ConnectHandler
#Parameter setting device_type is set to autodetect here
remote_device = {'device_type': 'autodetect',
'host': '192.168.0.254',
'username': 'user',
'password': 'passwordpassword'}
#Automatic detection
guesser = SSHDetect(**remote_device)
best_match = guesser.autodetect()
#Debug output of detection results
print("device_type: " + best_match)
#Automatically detected device_Reset type
remote_device['device_type'] = best_match
connection = ConnectHandler(**remote_device)
#Output of command execution result
print(connection.send_command('show version'))
#Disconnect
connection.disconnect()
Output example
device_type: cisco_ios ← Detected device_type
Cisco IOS Software, C181X Software (C181X-ADVENTERPRISEK9-M), Version 15.1(4)M4, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2012 by Cisco Systems, Inc.
Compiled Tue 20-Mar-12 23:34 by prod_rel_team
~Abbreviation~
-------------------------------------------------
Device# PID SN
-------------------------------------------------
*0 CISCO1812-J/K9 ***********
Configuration register is 0x2102
The auto-detection worked fine and I was able to see the show version results as well.
--netmiko general tutorial - https://pynet.twb-tech.com/blog/automation/netmiko.html
Recommended Posts