Nornir

Dernière modification le 11 janvier 2020

Nornir est un framework d’automatisation écrit en Python. Ce qui le différencie des autres frameworks c’est que vous utilisez le langage Python pour faire fonctionner nornir et non un autre langage comme c’est le cas avec des frameworks tels que Ansible ou Salt. La connexion aux équipements peut s’appuyer sur Napalm, Netmiko ou Paramiko.

Même s’il peut donner le sentiment de partir d’une feuille blanche, il est tout de même extrêmement efficace lorsqu’il s’agit de faire du « Human-driven Automation ». En effet, il automatise de nombreuses tâches en ayant un code très concis, et il permet l’usage d’un outil de debug comme ipdb. Ceux qui ont pratiqué suffisamment Ansible comprendront l’avantage lorsqu’on cherche la raison d’un dysfonctionnement dans le code.

Pour démarrer avec nornir il suffit de créer un fichier de configuration config.yaml, trois fichiers inventory hosts.yaml, groups.yaml, defaults.yaml, et en quelques lignes de code Python il est possible de récupérer des informations sur les équipements déclarés dans l’inventory ou de pousser des commandes et configurations.

Voici un exemple de code Python, tiré de la documentation de la dernière version, permettant de récupérer des informations sur les équipements et des détails sur les interfaces :

from nornir import InitNornir
from nornir.plugins.functions.text import print_result
from nornir.plugins.tasks.networking import napalm_get

nr = InitNornir(
    config_file="nornir.yaml", dry_run=True
)

results = nr.run(
    task=napalm_get, getters=["facts", "interfaces"]
)
print_result(results)