Python

1 Positionnement

Il est tout a fait compréhensible que les spécialistes réseaux se soient focalisés sur les protocoles car, non seulement c’est passionnant, mais ça permet aussi de monter dans la hiérarchie de la connaissance. Cependant, l’industrie des réseaux a amorcé un changement dans les années 2010 pour voir apparaître des concepts de plus en plus orientés système et développement. Des spécialistes réseaux ont intensifié l’utilisation de scripts écrits dans leur langage préféré. Poussé par les constructeurs et certains Consultants experts en réseau, le langage interprété Python s’est imposé comme un choix performant, mais aussi plus simple à appréhender, pour des non-développeurs, que bon nombre de langages compilés.

L’objectif ici n’est pas de présenter le langage Python car il existe de très bons tutoriels à disposition. Il faut tout de même préciser que, pour le sujet qui nous concerne, c’est la version 2.7 qu’il convient de privilégier. Même si dans notre contexte, les différences entre la version 2.7 et 3.6 ne sont pas fondamentales, il faut rester vigilant, car bon nombre de librairies et d’utilitaires ne sont supportés que sur Python2. Les exemples présentés dans ce document, ont été réalisés sur des plateformes physiques et virtuelles, parfois avec Python2 ou Python3.

Lors de l’apprentissage du langage, il est préférable de ne pas s’éparpiller et, outre la découverte des fondamentaux, de focaliser avant tout sur une utilisation appropriée au monde du réseau. Il serait possible de débattre longuement sur les méthodes d’apprentissage, mais aller directement à l’objectif peut permettre de voir rapidement les intérêts et laisser le soin, aux plus curieux, d’approfondir leur savoir sur les sujets sous-jacents. Pour apprendre correctement, il faut mettre en place des moyens, qu’ils soient physiques ou virtuels. Il existe de nombreux simulateurs de réseau qui ne sont pas encore à la hauteur pour virtualiser totalement une architecture réelle, mais qui sont suffisants pour un bon apprentissage. Aidé ou non d’un outil de simulation, les machines virtuelles, switchs virtuels et autres conteneurs peuvent aider à mimer des équipements réseau. Les scripts Python peuvent être générés depuis une machine virtuelle ou un conteneur Linux, mais aussi depuis des « Notebooks » Jupyter.

Pour rappel, lorsqu’une librairie Python ne fait pas partie de l’installation de base il suffit de la rajouter par l’utilisation de la commande : pip install NomDeLaLibrairie.

Une question légitime pourrait être « Faut-il partir d’une feuille quasi blanche et écrire tous les scripts en Python ou faut-il rester dans un cadre plus structuré comme Ansible ? ». Chacun peut apporter la réponse qui lui semble la plus pertinente en fonction de son caractère. Certains sont convaincus que seule leur logique est bonne et que ce qui est élaboré par les autres n’est pas valable et d’autres sont rassurés de travailler dans une logique proposée par toute une communauté, au risque de parfois avoir du mal à adhérer à certains schémas de pensée. Ce mini guide ne propose une introduction au langage Python et à quelques librairies réseau que pour permettre aux développeurs dans l’âme de mettre au point leurs propres scripts et mieux introduire l’outil d’automatisation Ansible.