netmiko ist eine Python-Bibliothek, mit der Sie sich anmelden und Netzwerkgeräte mit SSH betreiben können. Derzeit kompatibel mit Cisco IOS, Juniper JunOS, Palo Alto PAN-OS usw. Anmeldung, Übergang in den Konfigurationsmodus, Abmeldung usw. werden als Methoden abstrahiert, und einzelne Befehle sind eine Art Bibliothek, die Befehle direkt angibt. In dieser Hinsicht ist es weniger abstrakt als NAPALM. Es kann mit pip intall netmiko
usw. installiert werden.
ktbyers/netmiko: Multi-vendor library to simplify Paramiko SSH connections to network devices
In netmiko ist es normalerweise erforderlich, beim Erstellen eines Verbindungsobjekts einen Parameter namens "device_type" festzulegen, und in Cisco IOS wurde dieser als "cisco_ios" angegeben.
device_Bei expliziter Angabe des Typs
remote_device = {'device_type': 'cisco_ios',
'host': '192.168.0.254',
'username': 'user',
'password': 'passwordpassword'}
Die kürzlich veröffentlichte Version 1.3.0 fügt eine Funktion namens "SSH Autodetect" hinzu, die "device_type" automatisch erkennt.
Soweit ich auto_detect.py gelesen habe, sind die Modelle, die automatisch erkannt werden können, auf die Modelle beschränkt, die ursprünglich von netmiko unterstützt wurden. Es scheint, dass dies der Fall ist, aber diesmal habe ich versucht zu überprüfen, ob Cisco IOS vorerst erkannt werden kann. (Fast das gleiche wie im Beispiel im Kommentar in der obigen Quelle)
Automatische Erkennung
from netmiko.ssh_autodetect import SSHDetect
from netmiko.ssh_dispatcher import ConnectHandler
#Parametriergerät_Typ ist hier auf automatische Erkennung eingestellt
remote_device = {'device_type': 'autodetect',
'host': '192.168.0.254',
'username': 'user',
'password': 'passwordpassword'}
#Automatische Erkennung
guesser = SSHDetect(**remote_device)
best_match = guesser.autodetect()
#Debug-Ausgabe des Erkennungsergebnisses
print("device_type: " + best_match)
#Automatisch erkanntes Gerät_Typ zurücksetzen
remote_device['device_type'] = best_match
connection = ConnectHandler(**remote_device)
#Ausgabe des Befehlsausführungsergebnisses
print(connection.send_command('show version'))
#Trennen
connection.disconnect()
Ausgabebeispiel
device_type: cisco_ios ← Gerät erkannt_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
~Abkürzung~
-------------------------------------------------
Device# PID SN
-------------------------------------------------
*0 CISCO1812-J/K9 ***********
Configuration register is 0x2102
Die automatische Erkennung funktionierte einwandfrei und ich konnte auch die Ergebnisse der Showversion sehen.
--netmiko allgemeines Tutorial - https://pynet.twb-tech.com/blog/automation/netmiko.html
Recommended Posts