使用 Python 进行思科自动化

WBOY
发布: 2024-09-07 14:32:17
原创
839 人浏览过

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. Ensuite, je vous montre deux scripts de base pour afficher 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)
登录后复制

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)
登录后复制

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
登录后复制

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
登录后复制

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
登录后复制

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.

以上是使用 Python 进行思科自动化的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!