Nornir

nornir Python framework

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.

Continuer la lecture de « Nornir »

Vim

Editeur Vim

Dernière modification le 25 septembre 2020

Je développe sur plateformes macOS, mais tous mes serveurs sont sur Linux et même si j’utilise Sublime Text, PyCharm ou Visual Studio Code sur Mac, c’est Vim qui est mon éditeur préféré sur les serveurs Linux. Avec un petit fichier de configuration .vimrc dans le répertoire racine de l’utilisateur, tout est prêt pour démarrer…

colorscheme desert
syntax on

Vim peut être personnalisé jusqu’à en faire un éditeur très puissant pour développer, en enrichissant les configurations de .vimrc et en rajoutant des plugins.

Comme toujours, il est plus facile de travailler avec des petites fiches contenant les principales commandes utiles :

Netmiko

Python Netmiko

Dernière modification le 11 janvier 2020

Netmiko est une librairie Python multi-vendeurs pour simplifier l’accès SSH aux équipements à l’aide de la librairie Paramiko.

Netmiko supporte de nombreux constructeurs qui sont classés en trois catégories :

  • Regularly Tested
  • Limited Testing
  • Experimental

Les constructeurs que j’ai pour habitude de mettre en avant dans le domaine NetDevOps : Juniper, Cisco, Cumulus et Arista constituent la quasi totalité de la catégorie « Regularly Tested ». En 2016, j’ai écrit le module Alcatel AOS pour Netmiko, mais dans la mesure où je ne le maintiens plus et où peu de personnes l’utilisent régulièrement, il est passé dans la catégorie « Limited Testing ».

L’installation est très simple : pip3 install netmiko

Continuer la lecture de « Netmiko »

Python

Python programming

Dernière modification le 2 juin 2021

Au-delà des guerres de religions sur les langages, il est clair que dans le domaine des réseaux et de l’automatisation, c’est le langage Python qui est prédominant. Dans la mesure où il est très répandu dans beaucoup d’autres secteurs, il existe de nombreux cours et tutoriaux accessibles sur internet. Il était commun de dire que pour le réseau, c’était Python2 le plus adapté car de nombreuses librairies n’étaient pas encore portées sur Python3. Python 2.7 ne sera plus maintenu après janvier 2020, il est donc temps de passer à la version 3 pour ceux qui ne l’avaient pas encore fait.

CPython est l’implémentation originale de Python, il est le premier à implémenter de nouvelles fonctionnalités. C’est l’implémentation qui est téléchargeable depuis python.org. On l’appelle CPython pour le distinguer des autres implémentations Python (Jython, IronPython, PyPy…) et pour distinguer l’implémentation du moteur de langage du langage de programmation Python lui-même. CPython est implémenté en C. Il compile le code Python en bytecode (de manière transparente) et interprète ce bytecode dans une boucle d’évaluation.

L’objectif, ici, n’est pas de proposer la moindre présentation de ce qui est censé être un prérequis. En revanche, des cheat sheets sont toujours pratiques pour servir de fiches de rappel.

Les « Python Enhancement Proposals » sont des documents de conception fournissant des informations à la communauté Python ou décrivant une nouvelle fonctionnalité de Python, de ses processus ou de son environnement. S’il ne devait y en avoir qu’un seul à connaitre c’est le PEP 8 « Style Guide for Python Code » qui propose des bonnes pratiques à adopter.

Continuer la lecture de « Python »