TP 11 : Arista vEOS – Administration Cloud Networking
Module : 3 – Standards industriels (YANG) et approche Cloud/SDN
Durée indicative : 2h
Prérequis : partie théorique du Module 3, une VM Arista vEOS accessible, Python 3, pip install pyeapi
Objectifs
- Prendre en main l’interface JSON-RPC HTTPS (eAPI) d’Arista.
- Automatiser une petite fabric réseau avec la bibliothèque officielle
pyeapi. - Comparer eAPI (JSON-RPC) aux approches YANG/NETCONF/RESTCONF vues avec Cisco.
Contexte
Vous administrez deux commutateurs Arista vEOS simulant une fabric simple (spine-leaf réduite à 2 nœuds) pour illustrer l’automatisation « cloud networking ».
Le plan management (eAPI, en pointillé) est distinct du lien data point-à-point entre les deux switches.
Étape 1 – Activation d’eAPI
Sur chaque vEOS :
enable
configure terminal
management api http-commands
no shutdown
protocol https
end
username api-user privilege 15 secret VotreMotDePasseÉtape 2 – Premier appel brut (JSON-RPC)
import requests
URL = "https://192.168.1.101/command-api"
AUTH = ("api-user", "VotreMotDePasse")
payload = {
"jsonrpc": "2.0",
"method": "runCmds",
"params": {
"version": 1,
"cmds": ["show version"],
"format": "json"
},
"id": 1
}
resp = requests.post(URL, json=payload, auth=AUTH, verify=False, timeout=5)
resp.raise_for_status()
print(resp.json())Étape 3 – Utilisation de pyeapi
Fichier ~/.eapi.conf :
[connection:switch1]
host: 192.168.1.101
username: api-user
password: VotreMotDePasse
transport: https
[connection:switch2]
host: 192.168.1.102
username: api-user
password: VotreMotDePasse
transport: httpsimport pyeapi
switch1 = pyeapi.connect_to("switch1")
print(switch1.enable("show version"))Étape 4 – Configuration d’interfaces via pyeapi
switch1.config([
"interface Ethernet1",
"no switchport",
"ip address 10.10.12.1/30"
])Faites de même sur switch2 avec l’adresse 10.10.12.2/30, puis vérifiez la connectivité :
result = switch1.enable("ping 10.10.12.2")
print(result)Étape 5 – Automatisation multi-équipements
Écrivez un script configure_fabric.py qui, à partir d’une structure Python décrivant plusieurs switches (nom, IP de management, interfaces à configurer), applique la configuration à chaque équipement en boucle en utilisant pyeapi.connect_to.
Étape 6 – Comparaison des trois approches du module
Rédigez une synthèse (10-15 lignes) comparant, à partir des TP 9, 10 et 11 :
- la structure des échanges (YANG/XML pour NETCONF, YANG/JSON pour RESTCONF, JSON-RPC libre pour eAPI),
- la présence ou non d’un modèle de données standardisé,
- la facilité d’automatisation multi-équipements avec chaque approche.
Rendu attendu
- Scripts Python (appel brut +
pyeapi) versionnés. - Le fichier
configure_fabric.py. - La synthèse comparative NETCONF / RESTCONF / eAPI.
Points de vérification
- Les deux switches se pinguent mutuellement après configuration.
-
configure_fabric.pyfonctionne pour au moins deux équipements décrits en Python. - La synthèse aborde bien les trois axes demandés.