Comprendre les scripts d’automatisation Python pour les équipements Junos
Présentation des scripts Python
En alternative à SLAX et XSLT, vous pouvez créer et exécuter des scripts Python sur les équipements Junos qui prennent en charge le package d’extensions Python dans l’image logicielle. Python est un langage pratique et riche en fonctionnalités avec une prise en charge étendue de la bibliothèque qui vous permet de créer des scripts personnalisés. Le tableau 1 présente les versions Python disponibles sur les équipements Junos et indique la version dans laquelle la prise en charge de cette version a été ajoutée ou supprimée pour certains types de scripts.
Version Python |
Libération |
Changement |
Types de scripts affectés |
---|---|---|---|
Python 2.7.x |
Junos OS version 16.1R1 et versions ultérieures |
Assistance ajoutée |
Scripts Commit, Event, Op et SNMP Scripts Juniper Extension Toolkit (JET) Scripts d’action et de traduction YANG |
Junos OS version 20.2R1 et versions ultérieures |
Suppression de l’assistance |
Scripts d’action et de traduction YANG |
|
Junos OS version 21.1R1 et versions ultérieures |
Suppression de l’assistance |
Scripts Commit, Event, Op et SNMP Scripts Juniper Extension Toolkit (JET) |
|
Junos OS Evolved version 22.3R1 et versions ultérieures |
Suppression de l’assistance |
Scripts Commit, Event, Op et SNMP Scripts Juniper Extension Toolkit (JET) Scripts d’action et de traduction YANG |
|
Python 3,x |
Junos OS version 19.4R1 et versions ultérieures |
Assistance ajoutée |
Scripts Commit, Event, Op et SNMP |
Junos OS version 20.2R1 et versions ultérieures |
Assistance ajoutée |
Scripts Juniper Extension Toolkit (JET) Scripts d’action et de traduction YANG |
|
Junos OS Evolved version 21.1R1 et versions ultérieures |
Assistance ajoutée Consultez l’Explorateur de fonctionnalités pour connaître les plates-formes prises en charge. |
Scripts Commit, Event, Op et SNMP Scripts Juniper Extension Toolkit (JET) Scripts d’action et de traduction YANG |
La date de fin de vie et de fin de prise en charge de Python 2.7 était le 1er janvier 2020. Le chemin officiel de mise à niveau pour Python 2.7 est python 3. Étant donné que la prise en charge de Python 3 est ajoutée aux équipements exécutant Junos OS pour les différents types de scripts onbox, nous vous recommandons de migrer les types de scripts pris en charge de Python 2 vers Python 3.
Les scripts Python peuvent exploiter toutes les fonctionnalités et structures du langage Python, ce qui offre une flexibilité sur SLAX et XSLT et vous permet d’effectuer des opérations difficiles ou impossibles à réaliser dans SLAX et XSLT. SLAX et XSLT sont conçus pour traiter les données XML, mais Python est adapté au traitement de n’importe quel format. Python prend en charge une liste étendue de types de données, y compris des listes, des dictionnaires, des ensembles et des touffes, et de nombreuses variables Python sont mutables, contrairement à la plupart des variables SLAX et XSLT. Le contrôle de boucle est limité dans les scripts SLAX et XSLT, mais les scripts Python peuvent utiliser des instructions telles que break
et continue
pour contrôler précisément le comportement des boucles. Python dispose également d’une prise en charge étendue des opérations de fichiers, et vous pouvez invoquer le débogage Python standard sur la ligne de commande pour déboguer les scripts d’exploitation Python.
En outre, Junos OS prend en charge les scripts Python suivants :
Bibliothèque Junos PyEZ : simplifie l’exécution des RPC et l’exécution de tâches opérationnelles et de configuration sur les équipements exécutant Junos OS.
lxml
bibliothèque : simplifie la gestion de XPath.Bibliothèque Jinja2 : moteur de modèles qui vous permet de générer du contenu à partir de modèles prédéfinis, ce qui peut être utile pour générer des données de configuration Junos OS.
IPv6 : à partir de La version 19.3R1 de Junos OS, les équipements exécutant Junos OS ont pris en charge FreeBSD en utilisant IPv6 dans les scripts d’automatisation Python. Pour plus d’informations, voir Prise en charge D’IPv6 dans les scripts d’automatisation Python.
Instances de routage non par défaut : à partir de Junos OS version 19.3R1, les scripts Python sur les équipements pris en charge peuvent utiliser la fonction d’extension set_routing_instance() pour se connecter à un équipement distant via une instance de routage non définie.
Modules Python supplémentaires : pour plus d’informations sur les modules disponibles pour les scripts Python sur les équipements exécutant Junos OS, consultez la présentation des modules Python sur les équipements exécutant Junos OS.
Pour empêcher l’exécution de code Python non autorisé sur les équipements exécutant Junos OS, les scripts Python non signés doivent répondre à certaines exigences avant de pouvoir exécuter le script sur un équipement. Pour plus d’informations sur les exigences relatives à l’exécution de scripts d’automatisation Python sur les équipements exécutant Junos OS, consultez configuration requise pour exécuter des scripts d’automatisation Python sur des équipements Junos.
Pour exécuter des scripts Python non signés à l’aide de Python 2.7 ou Python 3, vous devez configurer l’instruction language python
au language python3
niveau de la [edit system scripts]
hiérarchie, respectivement. Si vous configurez l’instruction language python3
, l’équipement utilise Python 3 pour exécuter des scripts qui prennent en charge cette version de Python, et il utilise Python 2.7 pour exécuter des scripts qui ne prennent pas en charge Python 3 dans la version de Junos OS donnée, comme indiqué dans le tableau 1.
Pour les scripts JET, vous devez configurer la version de l’instruction correspondant à la version Python prise en charge par le script. Par exemple, si vous configurez l’instruction language python3
d’un script JET prenant uniquement en charge Python 2.7, vous recevrez une erreur d’exécution lorsque vous exécuterez le script.
Entrées de script Python pour les scripts Commit, Event, Op et SNMP
Les équipements exécutant Junos OS qui prennent en charge les scripts d’automatisation Python comprennent les modules suivants, que vous pouvez importer dans des scripts de validation, d’événement, d’exploitation et SNMP :
jcs
module : fournit un accès à un sous-ensemble des fonctions et modèles d’extension disponibles pour les scripts SLAX et XSLT.Pour plus d’informations sur les fonctions et modèles d’extension de Junos OS, consultez Understanding Extension Functions in Junos OS Automation Scripts et Understanding Named Templates in Junos OS Automation Scripts.
junos
module : contient les entrées de classe et de script présentées dans leJunos
tableau 2.
Objet Python |
Type |
Script Type |
Description |
Équivalent XSLT/SLAX |
---|---|---|---|---|
|
Dictionary |
Commettre Événement Op |
Informations spécifiques à l’équipement sur l’environnement d’exécution de scripts, telles que le nom d’hôte de l’équipement, le type de script et l’utilisateur exécutant le script. |
commit-script-input/junos-context entrée de script d’événement/contexte junos entrée de script op/contexte junos |
|
_Element lxml.etree |
Commettre |
Configuration du candidat post-héritage au format XML Junos. |
commit-script-input/configuration |
|
_Element lxml.etree |
Événement |
Détails de l’événement ayant déclenché la stratégie d’événement correspondante. |
event-script-input/trigger-event |
|
_Element lxml.etree |
Événement |
Détails des événements corrélés qui se sont produits avant l’événement déclencheur. |
événements-script-input/received-events |
|
Fonction génératrice qui produit une séquence d’équipements distants. |
Événement |
Détails de connexion d’un hôte local ou distant configuré pour un script d’événement au niveau de la |
event-script-input/remote-execution-details |
Pour des informations détaillées sur les différents scripts entrants et sur la façon de les importer et de les utiliser dans les scripts d’automatisation, consultez :
Ressources de script Python
Le tableau 3 fournit des ressources pour vous aider à créer et à exécuter des scripts Python sur les équipements exécutant Junos OS. Le tableau 4 fournit des ressources pour chacun des différents types de scripts.
Ressource |
Documentation |
---|---|
Exigences d’exécution de scripts Python |
Configuration requise pour exécuter des scripts d’automatisation Python sur les équipements Junos |
Modules Python sur les équipements exécutant Junos OS |
Présentation des modules Python sur les équipements exécutant Junos OS |
Prise en charge d’IPv6 dans les scripts Python |
Prise en charge d’IPv6 dans les scripts d’automatisation Python |
Documentation Sur Junos PyEZ |
|
Documentation sur le langage de programmation Python |
Script Type |
Documentation |
---|---|
Scripts Junos OS de validation, d’événement, d’exploitation et SNMP |
Guide de l’utilisateur des scripts d’automatisation Junos OS |
Scripts Juniper Extension Toolkit (JET) |
|
Scripts d’action et de traduction YANG |