Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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.

Tableau 1 : Versions python sur les équipements exécutant Junos OS

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

Note:

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 :

Tableau 2 : Objets du module junos

Objet Python

Type

Script Type

Description

Équivalent XSLT/SLAX

Junos_Context

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

Junos_Configuration

_Element lxml.etree

Commettre

Configuration du candidat post-héritage au format XML Junos.

commit-script-input/configuration

Junos_Trigger_Event

_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

Junos_Received_Events

_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

Junos_Remote_Execution_Details

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 [edit event-options event-script file filename remote-execution] hiérarchie.

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.

Tableau 3 : Ressources générales

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

Junos PyEZ

Documentation sur le langage de programmation Python

https://www.python.org/

Tableau 4 : Ressources par type de script

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)

Documentation sur Juniper Extension Toolkit

Scripts d’action et de traduction YANG

Guide du développeur du protocole de gestion XML NETCONF