7 sept. 2024
Fatigué de gérer l'automatisation réseau avec des scripts Python bruts ? Découvrez comment Laravel, avec sa planification intégrée, ses files d'attente et son support d'interface utilisateur web, offre une solution étonnamment élégante pour une automatisation réseau évolutive et sécurisée, même dans des environnements complexes.
rConfig
Tout chez rConfig
En matière d'automatisation de réseau, de nombreux développeurs et ingénieurs réseau ont tendance à utiliser Python, en raison de ses bibliothèques robustes comme Netmiko
, NAPALM
et Paramiko
. Python convient bien au scripting, mais il peut s'avérer un peu compliqué lors de l'extension de projets, de la création d'une interface conviviale ou de la gestion des workflows complexes. C'est là que Laravel, le framework web basé sur PHP, peut offrir une alternative convaincante.
La facilité d'utilisation de Laravel, son écosystème étendu et sa structure bien organisée le rendent étonnamment efficace pour la création d'outils d'automatisation de réseau. Dans ce blog, nous allons explorer comment vous pouvez commencer avec Laravel pour l'automatisation de réseau et pourquoi cela pourrait être plus simple que de tout construire à partir de zéro avec Python.
Pourquoi choisir Laravel pour l'automatisation de réseau ?
Laravel offre plusieurs avantages pour l'automatisation de réseau :
Structure intégrée : L'architecture MVC (Modèle-Vue-Contrôleur) de Laravel organise votre code de manière claire, facilitant ainsi la maintenance et l'extension.
Interface Web : Le moteur de template Blade de Laravel permet de créer facilement une interface utilisateur web propre pour votre plateforme d'automatisation.
Eloquent ORM : La gestion des bases de données et la consignation des opérations réseau deviennent plus faciles grâce à l'ORM intégré de Laravel (Mapping Objet-Relationnel) pour travailler avec les bases de données SQL.
Files d'attente et planification : Laravel facilite incroyablement la planification de tâches et la gestion des files d'attente, essentielles pour automatiser les opérations réseau récurrentes.
Intégrations tierces : L'écosystème de Laravel est vaste, avec de nombreux packages pour SSH, API, et bien plus encore - simplifiant des tâches pour lesquelles vous écririez autrement du code personnalisé en Python.
Voyons un simple exemple d'utilisation de Laravel pour automatiser des tâches réseau.
Étape 1 : Installer Laravel
Pour commencer, vous devez installer Laravel. Si cela n’est pas déjà fait, vous pouvez l’installer via Composer.
Après avoir installé Laravel, créez un nouveau projet :
Une fois Laravel installé, naviguez dans le répertoire de votre nouveau projet :
Étape 2 : Configurer SSH pour les appareils réseau
Pour automatiser les appareils réseau, vous avez besoin d'un moyen de communiquer avec eux. En Python, vous utiliseriez des bibliothèques comme Netmiko
, mais avec Laravel, nous pouvons utiliser un package comme le package SSH de Spatie pour exécuter facilement des commandes SSH.
Tout d'abord, installez le package SSH :
Maintenant, créons un simple contrôleur capable de se connecter en SSH à un appareil réseau et d'exécuter une commande.
Créer un nouveau contrôleur
Exécutez la commande Artisan suivante pour générer un contrôleur :
Cela générera un fichier NetworkController.php
dans app/Http/Controllers/
. Dans ce contrôleur, nous utiliserons le package SSH de Spatie pour automatiser certaines tâches.
Exemple de code : Connexion en SSH à un appareil réseau
Voici comment vous pouvez vous connecter en SSH à un appareil réseau et récupérer sa configuration :
Dans cet exemple :
Nous nous connectons en SSH à un appareil réseau (dans ce cas,
192.168.1.1
).La commande
execute('show running-config')
récupère la configuration en cours.Si cela réussit, le résultat est passé à une vue Blade pour être affiché.
Créer une vue Blade
Créons une vue Blade simple pour afficher la sortie de la configuration de l'appareil réseau.
Créez un nouveau fichier nommé show.blade.php
dans le dossier resources/views/config/
.
Maintenant, lorsque vous naviguez vers l'itinéraire connecté à cette méthode de contrôleur, vous verrez la sortie de la configuration dans votre navigateur.
Étape 3 : Définir une route pour le contrôleur réseau
Ensuite, configurez une route pour déclencher l'action du contrôleur. Ouvrez routes/web.php
et ajoutez :
Maintenant, si vous naviguez à http://votre-url-app/fetch-config
, vous déclencherez la commande SSH, et la configuration de l'appareil sera affichée dans l'interface web.
Étape 4 : Automatiser les tâches avec le planificateur de tâches de Laravel
L'un des plus grands défis de l'automatisation de réseau est la planification des tâches régulières, comme les sauvegardes ou les vérifications de statut. Le planificateur de tâches intégré de Laravel facilite considérablement cela.
Tout d'abord, configurons une tâche récurrente pour sauvegarder la configuration de l'appareil réseau chaque jour.
Planification d'une tâche
Dans Laravel, les tâches programmées sont définies dans le fichier app/Console/Kernel.php
. Ouvrez-le et ajoutez ce qui suit à l'intérieur de la méthode schedule
:
Cela se connectera en SSH à l'appareil et enregistrera la configuration dans un fichier de sauvegarde dans le répertoire storage/app/backups/
chaque jour. Le planificateur gérera automatiquement l'exécution de ce travail en arrière-plan.
Exécuter le planificateur
Pour garantir que le planificateur fonctionne, vous devez ajouter l'entrée cron suivante sur votre serveur :
Cela exécutera le planificateur de tâches de Laravel chaque minute, ce qui, en retour, exécutera les tâches définies au moment correct (par exemple, quotidiennement, hebdomadairement, etc.).
Étape 5 : Utiliser les files d'attente de Laravel pour les opérations de masse
Automatiser le réseau nécessite souvent de lancer des tâches sur de nombreux appareils en parallèle. Les files d'attente de tâches de Laravel sont parfaites pour cela. Supposons que nous voulions exécuter une commande sur plusieurs appareils simultanément – Laravel peut mettre en file ces tâches pour les traiter en parallèle.
Créer un nouveau travail
Vous pouvez créer un travail avec Artisan :
Dans le travail RunCommandOnDevice
, nous ajouterons la logique pour se connecter en SSH à un appareil et exécuter une commande.
Maintenant, vous pouvez mettre en file d'attente ce travail pour plusieurs appareils :
Laravel mettra en file ces tâches, et vous pourrez les traiter en parallèle avec des travailleurs.
Exécuter le travailleur de file d'attente
Pour commencer à traiter les tâches, exécutez le travailleur de file d'attente avec :
Cela vous permet de monter en charge et de gérer efficacement des tâches d'automatisation de réseau à grande échelle.
Conclusion
Bien que Python ait été le choix privilégié pour l'automatisation de réseau, Laravel offre une solution plus structurée, évolutive et conviviale, surtout lors de la construction de plateformes d'automatisation complexes avec une interface utilisateur, la planification et la mise en file de tâches. Avec des packages comme Spatie SSH et la planification des tâches intégrées de Laravel, vous pouvez obtenir une plateforme d'automatisation de réseau puissante, opérationnelle beaucoup plus rapidement qu'en démarrant de zéro avec Python.
Si vous développez des outils d'automatisation pour des équipes plus importantes ou si vous avez besoin d'une méthode simple pour gérer des tâches réseau récurrentes, Laravel fournit une excellente fondation pour commencer.
Présentation de rConfig Vector : Gestion de la Configuration Réseau Scalables et Distribuées pour les Équipes Modernes
Découvrez rConfig Vector — la solution NCM distribuée de nouvelle génération conçue pour l'échelle, la rapidité et la sécurité. Conçu pour les équipes informatiques modernes, Vector offre une haute disponibilité, un chiffrement par défaut, des sauvegardes ultra-rapides et une intégration d'outils transparente. Préparez la gestion de votre réseau pour le futur dès aujourd'hui.

Stephen Stack
CTO, rConfig
Pourquoi les plateformes rigides d'automatisation des réseaux échouent-elles — et comment rConfig donne aux équipes IT la flexibilité dont elles ont besoin
Découvrez pourquoi les outils d'automatisation de réseau orientés par des opinions échouent dans les environnements multi-fournisseurs d'aujourd'hui. Apprenez comment l'approche NCM flexible et indépendante du fournisseur de rConfig permet aux équipes informatiques d'automatiser, de se développer et d'innover sans compromis.
rConfig
Tout chez rConfig
Pourquoi les sauvegardes d'état du réseau sont-elles importantes : comment rConfig va au-delà de la configuration pour une visibilité réelle
Allez au-delà de l'intention avec la gestion de réseau sensible à l'état de rConfig. Capturez le comportement en temps réel des dispositifs avec des sauvegardes d'état—BGP, tables de routage, LLDP/CDP, et plus encore—pour un dépannage plus rapide, la conformité et une visibilité complète de votre réseau.
rConfig
Tout chez rConfig