netmiko est une bibliothèque Python qui vous aide à vous connecter et à utiliser des périphériques réseau avec SSH. Actuellement compatible avec Cisco IOS, Juniper JunOS, Palo Alto PAN-OS, etc. La connexion, la transition du mode de configuration, la déconnexion, etc. sont abstraites en tant que méthodes, et les commandes individuelles sont un type de bibliothèque qui spécifie directement les commandes. Il est moins abstrait que NAPALM à cet égard. Il peut être installé avec pip intall netmiko
etc.
ktbyers/netmiko: Multi-vendor library to simplify Paramiko SSH connections to network devices
Dans netmiko, il est généralement nécessaire de définir un paramètre appelé device_type
lors de la création d'un objet de connexion, et dans Cisco IOS, il a été spécifié comme" cisco_ios ".
device_Lors de la spécification explicite du type
remote_device = {'device_type': 'cisco_ios',
'host': '192.168.0.254',
'username': 'user',
'password': 'passwordpassword'}
La version 1.3.0 récemment publiée ajoute une fonctionnalité appelée "SSH autodetect" qui détecte automatiquement device_type
.
D'après ce que j'ai lu auto_detect.py, les modèles qui peuvent être détectés automatiquement sont limités aux modèles initialement pris en charge par netmiko. Il semble que oui, mais cette fois j'ai essayé de vérifier s'il pouvait détecter Cisco IOS pour le moment. (Presque le même que l'exemple dans le commentaire dans la source ci-dessus)
Détection automatique
from netmiko.ssh_autodetect import SSHDetect
from netmiko.ssh_dispatcher import ConnectHandler
#Dispositif de paramétrage_le type est défini pour être détecté automatiquement ici
remote_device = {'device_type': 'autodetect',
'host': '192.168.0.254',
'username': 'user',
'password': 'passwordpassword'}
#Détection automatique
guesser = SSHDetect(**remote_device)
best_match = guesser.autodetect()
#Sortie de débogage des résultats de détection
print("device_type: " + best_match)
#Appareil détecté automatiquement_Réinitialiser le type
remote_device['device_type'] = best_match
connection = ConnectHandler(**remote_device)
#Sortie du résultat de l'exécution de la commande
print(connection.send_command('show version'))
#Déconnecter
connection.disconnect()
Exemple de sortie
device_type: cisco_ios ← appareil détecté_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
~Abréviation~
-------------------------------------------------
Device# PID SN
-------------------------------------------------
*0 CISCO1812-J/K9 ***********
Configuration register is 0x2102
La détection automatique a bien fonctionné et j'ai également pu voir les résultats de la version de l'émission.
Recommended Posts