Napalm

Pour les constructeurs leaders du domaine de l’automatisation de réseau, la librairie NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) fournit des fonctions abouties. Une matrice de compatibilité permet de savoir sur quels constructeurs, les fonctions proposées sont supportées. Un des avantages est de pouvoir écrire des scripts qui effectuent une même tâche sur plusieurs types d’équipements différents sans avoir à prendre en compte les spécificités de chacun des systèmes. Avec quelques lignes en Python, il est possible de simuler le comportement idempotent d’Ansible.

Pour accéder aux équipements, NAPALM s’appuie sur les librairies suivantes :

  • EOS : pyeapi
  • Junos : junos-eznc
  • IOS-XR : pyIOSXR
  • NX-OS : pynxos
  • NX-OS SSH : netmiko
  • IOS : netmiko

NAPALM est une librairie présente dans de nombreux frameworks d’automatisation comme Ansible, Salt ou Nornir.

Outre NAPALM, deux autres librairies sont disponibles :

  • napalm-logs : bibliothèque Python qui écoute les messages syslog des périphériques réseau et renvoie les données structurées selon les modèles OpenConfig ou IETF YANG.
  • napalm-yang : YANG (RFC6020) est un langage de modélisation de données, c’est un moyen de définir l’apparence des données. La bibliothèque napalm-yang fournit un cadre d’utilisation des modèles définis avec YANG dans le contexte de la gestion de réseau. Il fournit des mécanismes pour transformer les données / configuration natives en YANG et inversement.