Environnement du TP 13 : Netmiko (réseau legacy simulé)

Ce TP réutilise exactement la même VM Cisco IOS-XE que les TP 9 et 10 (voir tp9-environnement.md) : aucune nouvelle VM à créer.

1. Prérequis complémentaires

  • la VM du TP 9 démarrée et accessible en SSH,
  • Python 3 avec pip install netmiko ntc-templates sur le poste hôte.

2. Installation des templates TextFSM (pour le scraping structuré)

Netmiko s’appuie sur les templates communautaires ntc-templates pour l’option use_textfsm=True :

pip install ntc-templates

Sur certains systèmes, définissez la variable d’environnement pointant vers les templates si elle n’est pas détectée automatiquement :

export NET_TEXTFSM=$(python3 -c "import ntc_templates, os; print(os.path.join(os.path.dirname(ntc_templates.__file__), 'templates'))")

3. Vérification de l’accès CLI seul

Ce TP simule un équipement sans API : vous n’utiliserez volontairement ni RESTCONF ni NETCONF ici, uniquement SSH. Vérifiez simplement que la connexion CLI fonctionne :

4. Test rapide de la sortie structurée

python3 -c "
from netmiko import ConnectHandler
d = {'device_type':'cisco_ios','host':'192.168.1.1','username':'api-user','password':'VotreMotDePasse'}
with ConnectHandler(**d) as c:
    print(c.send_command('show ip interface brief', use_textfsm=True))
"

Une liste de dictionnaires Python (et non une simple chaîne de texte) confirme que ntc-templates est correctement installé et détecté.

Vérification finale

  • La connexion SSH fonctionne indépendamment de RESTCONF/NETCONF.
  • use_textfsm=True renvoie une structure de données exploitable (liste de dictionnaires).
  • La configuration des TP 9/10 (interfaces, OSPF) est toujours présente sur l’équipement.