Free Webinar Python et Ansible avec ALE

Webinar Automatisation ALE

Dernière modification le 30 mars 2020

Afin de profiter de la période de confinement pour améliorer les connaissances et revenir dans le circuit économique avec des méthodes encore plus efficaces, je vous propose une série de Webinars gratuits sur l’Automatisation Réseau.

Régulièrement, nous prendrons un sujet et nous le regarderons ensemble. L’objectif n’est pas seulement de participer de manière passive, mais aussi d’essayer soit même de le mettre en place en se faisant assister de la communauté présente dans le webinar.

Rejoignez la communauté Slack du NetDevOps Accelerator.

Continuer la lecture de « Free Webinar Python et Ansible avec ALE »

Robot Framework

Robot Framework

Dernière modification le 28 mars 2020

Il existe de nombreuses solutions pour effectuer les tests unitaires TDD (Test Driven Development) dans le cadre des mises au point NetDevOps, mais Robot Framework est mon framework d’automatisation open source générique préféré pour effectuer les tests d’acceptation ATDD (Acceptance Test Driven Development). Ses capacités de test peuvent être étendues avec des librairies implémentées en Python ou en Java. Initialement, le framework a été développé par Nokia Networks. Aujourd’hui, il est sponsorisé par la Robot Framework Foundation.

Dans la mesure où on parle de « Network as Code » ou « Infrastructure as Code », c’est que l’on considère que tout ce qui est nécessaire pour activer l’infrastructure existe sous forme logicielle. Dans le monde du logiciel, les approches Agile et DevOps sont largement adoptées. On sait que les tests sont une partie importante de l’approche Agile pour la « Definition of Done » d’une « User Story ». Pour réaliser une « User Story », il est généralement nécessaire de la découper en tâches. Il n’existe pas qu’une seule façon de concevoir les choses, mais en ce qui me concerne, je considère que les tests qui valident une tâche doivent rester au plus proche de celle-ci. Il s’agit, le plus souvent, de tests unitaires. Si j’utilise Ansible pour réaliser la tâche, alors les tests permettant de dire que la tâche est bien terminée sont intégrés à ses Playbooks.

Continuer la lecture de « Robot Framework »

Ansible ALE Galaxy

ALE OmniSwitch Ansible Galaxy

Dernière modification le 28 mars 2020

Depuis plusieurs années, il y a une absence de module réseau pour Alcatel-Lucent Enterprise dans Ansible. Lorsque j’avais travaillé sur le module alcatel_aos pour Netmiko, l’idée était de permettre de faire de l’automatisation en utilisant le langage Python. L’adjonction du framework Nornir offrait une structuration du code qui reprenait certaines logiques d’Ansible. Trois ans plus tard, force est de constater qu’une grande majorité de personnes partent plus facilement sur le chemin du « Human-driven Automation » avec un outil comme Ansible et son pseudo langage en YAML qu’avec un langage direct comme Python qui reste réservé aux personnes plus expérimentées dans le développement.

C’est pour combler ce manque que j’ai écrit les modules ale_aos pour Ansible, en restant le plus générique possible afin de laisser plus de souplesse dans l’utilisation de ces modules. Ils sont disponibles dans la Galaxy Ansible, et attendent vos tests et propositions d’amélioration, le dépôt officiel des modules de la Galaxy étant dans un Github public. La licence utilisée permet toutes les améliorations sur la branche master des Network Modules, mais n’autorise pas la redistributions des forks, afin d’éviter la perte d’énergie (licence Attribution-NonCommercial-NoDerivatives 4.0 International / CC BY-NC-ND 4.0).

Continuer la lecture de « Ansible ALE Galaxy »

Automatisation ALE

ALE Automation

Dernière modification le 28 mars 2020

Dans la gamme des commutateurs Alcatel-Lucent Enterprise, appelée OmniSwitch, il existe deux systèmes d’exploitation : AOS6 et AOS8. La stratégie consiste à uniformiser de plus en plus les équipements avec AOS8.

AOS8 possède plus de méthodes d’automatisation que AOS6, mais les points communs entre les deux systèmes sont :

  • Zero-touch Provisionning
    • Serveurs DHCP / FTP / TFTP ou…
    • Serveur OmniVista 2500 on-premise ou en cloud (Cirrus)
  • Python / SSH avec mon module Netmiko en Off-box scripting
    • Je conseille d’utiliser Netmiko avec le framework Python Nornir
  • Ansible / SSH avec mes Network Modules disponibles dans la Galaxy
Continuer la lecture de « Automatisation ALE »

Automatisation ALE – Métropole et Ville de Perpignan

Metropole et Ville de Perpignan

Dernière modification le 21 décembre 2019

Outre des objectifs de disponibilité et de performance qui nous avaient été fixés par la direction du numérique de la Métropole et de la Ville de Perpignan, la Direction du Numérique souhaitait mettre en oeuvre une approche DevOps. Dans ce cadre là, notre rôle a consisté à accompagner les équipes sur les nouvelles technologies, méthodologies et outils nécessaires à la mise en œuvre de ces infrastructures innovantes.

Des OmniSwitch OS6900 et OS6450 ont été déployés en mode ZTP en utilisant des serveurs DHCP, FTP et TFTP tournant sur Raspbian. Ansible a été utilisé pour générer les fichiers de configuration des serveurs, ainsi que les configurations des différents équipements. Des scripts Python/Netmiko ont permis de pousser les configurations sur tous les équipements et de générer des tests unitaires pour vérifier le bon fonctionnement de l’infrastructure.

Metropolis and City of Perpignan / Alcatel-Lucent Enterprise web site

Netmiko pour OmniSwitch

Alcatel-Lucent Enterprise

Dernière modification le 23 mars 2020

En 2016 j’ai écrit le module alcatel_aos pour Netmiko. Depuis, ce module Python fonctionne pour AOS6 et AOS8 et il est maintenu par Kirk Byers lorsque des changements majeurs sont effectués sur la librairie Netmiko.

Lorsqu’il s’agit de faire appel à Netmiko pour réaliser de l’automatisation sur OmniSwitch ALE, j’y adjoins le framework d’automatisation Nornir écrit en Python.

Fichier de configuration Nornir :

---
core:
    num_workers: 100
inventory:
    plugin: nornir.plugins.inventory.simple.SimpleInventory
    options:
        host_file: 'inventory/hosts.yaml'
        group_file: 'inventory/groups.yaml'
        defaults_file: 'inventory/defaults.yaml'
Continuer la lecture de « Netmiko pour OmniSwitch »