Automatisation des réseaux IP avec Python
INTRODUCTION :
Ce cours apprend aux étudiants à combiner les compétences de python dans l’optique de l’automatisation des réseaux. Les techniques d’automatisation pour les fournisseurs les plus populaires seront les sujets d’étude. Les sujets abordés commencent par l’automatisation des réseaux avec Python. Cet ensemble de compétences est ensuite intégré à une compréhension plus large d’autres approches Python (automatisation avec playbooks, Paramiko, Netmiko, etc.). À la fin de ce cours, les étudiants auront une expérience programmatique de l’automatisation des réseaux d’entreprise, y compris l’écriture de scripts et de modules personnalisés avec Python.
OBJECTIFS :
A la fin de la formation, vous serez capable d’entrer dans les aspects techniques des champs suivants :
- Travailler avec des fichiers en Python (texte, csv, json, yaml)
- Sérialisation et désérialisation des données (Pickle et JSON)
- Octets et objets de type chaîne en Python 3. Encodage, décodage
- Concepts avancés de Python : Multiprocessing et Multithreading avec des exemples concrets
- La bibliothèque Python standard Telnet. Comment créer votre propre classe basée sur telnetlib pour simplement automatiser la configuration.
- La bibliothèque Paramiko. Comment utiliser SSH pour automatiser la configuration des appareils Cisco, Linux ou autres.
- Comment créer votre propre module Python basé sur Paramiko pour simplifier le travail de développement.
- Netmiko. Automatiser la configuration de Cisco, Arista, et Linux en utilisant Netmiko
- Meilleures pratiques et exemples concrets de Netmiko pour la configuration de secours de plusieurs dispositifs
- Construire des applications concurrentes en utilisant Async IO (async/await, aiohttp, aiofiles, asyncssh)
- La bibliothèque NAPALM – Couche d’abstraction de l’automatisation et de la programmabilité du réseau avec un support multivendeur.
- Qu’est-ce qu’Ansible et quels sont ses composants : Modules, Tasks, Plays, Playbooks, etc.
- Ansible Vault
DUREE :
- 32 heures
LES MODULES DU COURS :
- Aperçu de Python et des bibliothèques populaires
- Règles d’espacement de Python et meilleures pratiques
- Expressions conditionnelles
- Opérateurs relationnels et booléens
- Listes, tuples, dictionnaires
- Indexation et découpage en tranches
- Fonctions intégrées
- Écrire des fonctions personnalisées
- Accès aux méthodes
- Itération avec les boucles (for et while)
- Travailler avec des fichiers
- Gestion du contrôle logiciel (SCM) (Git, Github, Bitbucket, Cloudshare, etc.)
- Se familiariser avec les interfaces RESTful avec Python
- Travailler avec JSON
- Python, Tasks, Playbooks et Paramiko
- Utiliser Paramiko pour SSH avec des clés et des mots de passe
- Revue des API RESTful
- Clés API
- Revue de Paramiko
- Utilisation de Paramiko pour SFTP avec des clés et des mots de passe
- Introduction à Netmiko (automatisation des routeurs et des commutateurs)
- Utilisation de Netmiko pour envoyer des commandes vers / depuis des périphériques réseau
- Travailler avec YAML
- Convertir JSON en YAML avec Python
- YAML et JSON pour l’échange de données
- Playbooks et YAML
- Composants des playbooks
- Lier Python avec les playbooks
- Modules réseau
- Rédaction de playbooks réseau
- Ecrire des playbooks qui répondent aux défaillances du réseau
- Appeler des scripts Python
- Moteur de Templating Jinja2 pour Python
- Utiliser les templates dans les playbooks
- Filtres Jinja2, boucles et autres astuces utiles pour l’automatisation avec les Playbooks
- Balisage des playbooks pour des exécutions sélectives
- Quand utiliser Python et quand utiliser les modules et les playbooks ?
- Rôles des playbooks