Ansible

Pour aller plus loin

Le monde du réseau change en prenant une orientation de plus en plus système et développement. Il est en train de se produire ce qui a déjà été vécu dans le monde de la téléphonie dans les années 2000 avec l’arrivée de la ToIP. Pour ceux qui ont connu cette vague, ils se rappellent la façon dont un grand nombre de spécialistes téléphonie ont été mis sur la touche par manque d’anticipation des compétences nécessaires aux nouvelles approches qui arrivaient. Il parait judicieux de tirer parti de l’histoire pour ne pas reproduire les mêmes erreurs et les spécialistes réseau n’ont plus beaucoup de temps pour intégrer les compétences système, développement et, de manière générale, NetOps ou Net DevOps. Tout va très vite maintenant dans le monde du système. Un serveur peut être provisionné complètement en très peu de temps. Dans une logique de rapprochement des mondes réseau et système, il n’est pas envisageable de continuer à concevoir et maintenir des réseaux avec des méthodes artisanales et lentes.

L’intégration continue appliquée au réseau implique une maîtrise de l’automatisation et l’accès à un environnement de simulation et d’incubation. Pour maîtriser le domaine de l’automatisation, rien ne peut remplacer la pratique assidue. Celle doit s’effectuer en démarrant sur de bonnes bases afin d’éviter de laisser s’installer de mauvaises habitudes difficiles à corriger par la suite.

La lecture de la documentation Ansible [6] est indispensable, et plus particulièrement s’inspirer des bonnes pratiques [7] [8] qui permettent de bien structurer le travail et tirer parti de tous les mécanismes préétablis.

Jusqu’à présent, les incubateurs se sont réalisés sur la base de matériels de rechange utilisés pour simuler le réseau en miniature. Idéalement, l’intégration continue et le déploiement continu seront d’autant plus facile à réaliser que des outils de simulation virtualisés seront disponibles. Il existe des constructeurs pour lesquels il est déjà possible de faire tourner leur système dans un conteneur ou une machine virtuelle et ainsi simuler une infrastructure sur un serveur. Ce principe était déjà largement utilisé avec Open vSwitch et le simulateur mininet dans le domaine Open SDN.

GNS3

Le simulateur GNS3 est bien adapté pour réaliser un laboratoire de test et d’entrainement. En scrutant les « Network Modules », intégrés par défaut dans le package Ansible, et en recoupant ces informations avec la mise à disposition, pour certains fournisseurs, de distributions officielles pour simulateurs, il est possible de monter un environnement de développement approprié et gratuit. L’appliance GNS3 « Network Automation », disponible sur le Marketplace, permet de démarrer rapidement un conteneur Docker avec un environnement Python 2.7 et Ansible 2.4 à la date d’écriture de ce mini guide.

La réalisation de scripts amène rapidement une situation dans laquelle plusieurs moutures différentes d’un même programme sont testées. Il est judicieux de commencer à raisonner en terme de version et de mettre en place un outil comme Git. Il y a des chances que tout le monde ait entendu parler de GitHub qui héberge un grand nombre d’applications Open Source. Il s’agit bien de la même chose, à la différence que Git est installé à titre privé et sans obligatoirement chercher à mettre en place une interface web. Git a été mis au point par Linus Torvalds et il est utilisé pour le développement du noyau Linux. C’est un logiciel de contrôle de version qui gère les modifications d’un projet sans en écraser une partie [9].