Automatisation Cisco avec Python

WBOY
Libérer: 2024-09-07 14:32:17
original
866 Les gens l'ont consulté

Automatización de Cisco con Python

L'automatisation des périphériques réseau, tels que les routeurs et commutateurs Cisco, peut être facilement réalisée à l'aide de Python avec la bibliothèque Netmiko, conçue pour gérer facilement les connexions SSH. Ci-dessous, je vous montre deux scripts de base pour visualiser la configuration d'un appareil Cisco et pour automatiser la création et la configuration des VLAN.

1. Script pour afficher la configuration d'un appareil Cisco (routeur) :

from netmiko import ConnectHandler
ssh=ConnectHandler(
    device_type="cisco_ios",
    host="192.168.0.10",
    port=22,
    username="cisco",
    password="cisco"
)
out=ssh.send_command("show run")
print(ssh.find_prompt())
print("show run:\n"+out)
Copier après la connexion

Fonctionnement :

  • Netmiko Import : La classe ConnectHandler est importée pour gérer la connexion SSH.
  • Connexion SSH : à l'aide de l'adresse IP, du port et des informations d'identification du périphérique Cisco, une connexion est créée.
  • Exécution de la commande : La commande show run est envoyée pour obtenir la configuration actuelle de l'appareil.
  • Impression de l'invite : l'invite de l'appareil est imprimée, indiquant que la connexion est toujours active.
  • Affichage de la configuration : le résultat de la commande est imprimé, indiquant la configuration en cours.

Ce script est utile pour effectuer des requêtes de configuration rapides sur les appareils Cisco de manière automatisée.

2. Script pour créer, configurer et attribuer des adresses IP aux VLAN :

from netmiko import ConnectHandler

ssh = ConnectHandler(
    device_type="cisco_ios",
    host="192.168.10.2",
    port=22,
    username="womar1",
    password="womar"
)
ssh.enable()
comandos = [
    "hostname uwu",
    "vlan 10",
    "interface vlan 10",
    "ip address 192.168.2.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/1 - 5',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 10',
    "vlan 20",
    "interface vlan 20",
    "ip address 192.168.3.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/6 - 10',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 20',
    "vlan 10",
    "interface vlan 30",
    "ip address 192.168.4.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/11 - 15',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 30',
    "vlan 10",
    "interface vlan 40",
    "ip address 192.168.5.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/16 - 20',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 40',
    "vlan 50",
    "interface vlan 50",
    "ip address 192.168.200.1 255.255.240.0",
    "no shutdown",
    'interface range fa0/21 - 22',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 50',



]
ssh.send_config_set(comandos)
configuracion = ssh.send_command("show run")
comands = ssh.find_prompt()

print(comands)
print("show run:\n" + configuracion)
Copier après la connexion

Fonctionnement :

  • Connexion et mode privilégié : Une connexion SSH est établie et basculée en mode privilégié avec ssh.enable().
  • Liste de commandes : Plusieurs VLAN sont créés, des interfaces et des adresses IP sont attribuées à ces VLAN, et les ports sont configurés en accès en mode switchport.
  • Application de configuration : les commandes sont envoyées en masse avec ssh.send_config_set().
  • Vérification de la configuration : la commande show run est utilisée pour obtenir la configuration actuelle de l'appareil.
  • Impression du résultat : l'invite de l'appareil et la configuration résultante sont imprimées.

Ce script est idéal pour automatiser la configuration des VLAN et attribuer des IP aux interfaces, facilitant ainsi l'administration de réseaux complexes de manière rapide et efficace.

Ressources nécessaires :
Avant de commencer à automatiser la configuration des appareils Cisco à l'aide de Python, il est important de vous assurer que vous disposez du bon environnement. Je détaille ici les ressources et outils dont vous aurez besoin :

1. Installation de Python et des bibliothèques

Vous devez avoir Python 3.6 ou supérieur installé sur votre système. Si vous ne l'avez pas encore, vous pouvez facilement l'installer en fonction de votre système d'exploitation.

Pour interagir avec les appareils Cisco de manière automatisée, nous utilisons Netmiko, une bibliothèque Python qui facilite la connexion SSH aux routeurs et commutateurs.

  • Netmiko : C'est la bibliothèque principale que nous utilisons pour nous connecter aux périphériques réseau (tels que des routeurs ou des commutateurs) via SSH.
  • Paramiko : Netmiko dépend de cette bibliothèque, qui est un client SSH en Python.
  • PIP : C'est le gestionnaire de packages Python et vous en avez besoin pour installer les bibliothèques.

2. Installation des Bibliothèques

Pour installer Netmiko et ses dépendances (dont Paramiko), exécutez la commande suivante dans votre terminal :

pip install netmiko
Copier après la connexion

Cette commande téléchargera et installera Netmiko ainsi que ses dépendances nécessaires. Une fois terminé, vous pouvez vérifier que tout a été correctement installé en utilisant :

pip list
Copier après la connexion

Cela vous montrera toutes les bibliothèques installées, parmi lesquelles vous devriez voir netmiko et paramiko.

3. Accès SSH aux appareils Cisco

En plus des bibliothèques installées, vous devez vous assurer que le périphérique Cisco (routeur ou commutateur) est configuré pour accepter les connexions SSH. Vous trouverez ci-dessous quelques points clés pour activer l'accès :

a) Activez SSH sur le périphérique Cisco :

configure terminal
ip domain-name cisco.local
crypto key generate rsa
username cisco privilege 15 secret cisco
line vty 0 4
transport input ssh
login local
exit
Copier après la connexion

b) Vérifiez les informations d'identification et l'adresse IP :

  • Assurez-vous d'avoir les informations d'identification correctes (nom d'utilisateur et mot de passe) et que l'adresse IP de l'appareil est accessible depuis la machine sur laquelle vous exécuterez les scripts Python.

Avec ces configurations, vous êtes prêt à exécuter des scripts et à automatiser des tâches sur les appareils Cisco à l'aide de Python.

Conclusion

Avec les bonnes ressources (Python, Netmiko, SSH activés sur les appareils Cisco) et les bibliothèques nécessaires installées, vous serez prêt à commencer à automatiser la configuration et la gestion de vos appareils réseau à l'aide de Python. Netmiko facilite la connexion et l'exécution de commandes sur ces appareils, simplifiant les tâches répétitives et améliorant l'efficacité de la gestion du réseau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal