Comprendre les fonctions d’extension dans les scripts d’automatisation Junos OS
Junos OS fournit des outils de script d’automatisation, y compris des fonctions d’extension et des modèles nommés, qui peuvent être utilisés dans les scripts de validation, d’opération, d’événement et SNMP pour accomplir plus facilement des tâches de script sur les équipements exécutant Junos OS. Les bibliothèques fournissent des fonctions logiques, de manipulation des données, d’entrée et de sortie, ainsi que des fonctions d’utilité, et vous permettent d’effectuer des opérations difficiles ou impossibles à effectuer dans XPath. Le tableau 1 résume les fonctions d’extension de Juniper.
Pour utiliser les fonctions d’extension, les scripts d’automatisation Python doivent importer le jcs module, et les scripts SLAX et XSLT doivent déclarer l’URI d’espace de noms approprié dans la déclaration de feuille de style. Une fonction de l’espace jcs de noms est définie dans l’URI d’espace de noms http://xml.juniper.net/junos/commit-scripts/1.0, et une fonction dans l’espace slax de noms est définie dans l’URI d’espace de noms http://xml.libslax.org/slax .
Les fonctions utilisant l’espace slax de noms sont prises en charge à partir de La version 12.2 de Junos OS. Les scripts utilisant des fonctions d’extension indépendantes du système d’exploitation Junos qui existaient dans les versions précédentes de l’espace jcs de noms peuvent utiliser l’espace jcs de noms à slax partir de Junos OS version 12.2. Toutefois, pour utiliser l’une de ces fonctions dans les versions précédentes de Junos OS, les scripts doivent utiliser l’URI d’espace de jcs noms.
L’instruction de script version SLAX détermine les fonctions pouvant être utilisées dans ce script. Pour utiliser une fonction introduite dans une version SLAX spécifique, la valeur de l’instruction de script version doit être égale ou supérieure à la version dans laquelle la fonction a été introduite. Par exemple, les fonctions introduites dans la version 1.1 du langage SLAX ne peuvent pas être utilisées dans un script SLAX doté d’une déclaration « version 1.0 ».
Les scripts SLAX peuvent également utiliser des fonctions supplémentaires à partir des bibliothèques d’extension par défaut libslax. Pour plus d’informations, consultez bibliothèques d’extension par défaut libslax : bit, curl, db, os et xutil.
Les scripts d’automatisation Python ne prennent en charge qu’un sous-ensemble des fonctions d’extension. Pour de nombreuses fonctions non prises en charge, vous pouvez utiliser des bibliothèques Python standard pour obtenir les mêmes fonctionnalités.
Fonction |
Espaces nom |
SLAX Version |
Type |
Description |
Prise en charge des scripts Python |
|---|---|---|---|---|---|
Slax |
1.1 |
Manipulation des données |
Décodez les données codées base64 et renvoyez une chaîne. |
– |
|
Slax |
1.1 |
Manipulation des données |
Encodez une chaîne de données au format d’encodage BASE64. |
– |
|
jcs, slax |
1.0 |
Manipulation des données |
Divisez un élément simple en plusieurs éléments, délimités par de nouvelles lignes. |
– |
|
Jcs |
1.0 |
Utilitaire |
Fermez une poignée de connexion précédemment ouverte. |
– |
|
jcs, slax |
1.0 |
Utilitaire |
Empêchez l’exécution répétée de la même opération dans un script. |
Y |
|
Slax |
1.1 |
Contrôle des entrées/sorties |
Lire les données d’un fichier ou d’une URL et renvoyer une chaîne. |
– |
|
– |
– |
Utilitaire |
Générez une modification persistante ou transitoire de la configuration dans un script de validation. |
Y |
|
– |
– |
Contrôle des entrées/sorties |
Générez un message d’erreur sur la console. |
Y |
|
– |
– |
Contrôle des entrées/sorties |
Renvoyer les informations pour l’objet MIB demandé à partir d’un script SNMP. |
Y |
|
– |
– |
Contrôle des entrées/sorties |
Générez un message d’avertissement sur la console. |
Y |
|
jcs, slax |
1.0 |
Logique |
Évaluez un ensemble de nœuds ou un argument de chaîne pour déterminer s’il s’agit d’une valeur vide. |
– |
|
Slax |
1.1 |
Contrôle des entrées/sorties |
Évaluez une expression SLAX et renvoyez le résultat. |
– |
|
Jcs |
1.0 |
Utilitaire |
Exécutez un appel de procédure à distance (RPC) dans le contexte d’un handle de connexion spécifié. |
– |
|
jcs, slax |
1.0 |
Logique |
Renvoyez le premier élément nonempty (non-null) dans une liste, Si tous les objets de la liste sont vides, l’expression par défaut est renvoyée. |
– |
|
jcs, slax |
1.1 |
Contrôle des entrées/sorties |
Invitez l’utilisateur à saisir une commande et renvoyez l’entrée sous forme de chaîne. |
– |
|
Jcs |
1.0 |
Utilitaire |
Renvoyez l’ID de session et les capacités du serveur NETCONF pendant une session NETCONF. |
– |
|
|
jcs, slax |
1.0 |
Contrôle des entrées/sorties |
Appelez une invite CLI et attendez l’entrée de l’utilisateur. Si le script n’est pas exécuté de manière interactive, la fonction renvoie une valeur vide. Cette fonction ne peut pas être utilisée avec les scripts d’événements. |
Y |
Jcs |
1.0 |
Utilitaire |
Renvoyez le protocole de session associé au handle de connexion. |
– |
|
|
jcs, slax |
1.0 |
Contrôle des entrées/sorties |
Appelez une invite CLI et attendez l’entrée de l’utilisateur. L’entrée n’est pas répercutée à l’utilisateur. |
Y |
– |
– |
Contrôle des entrées/sorties |
Récupérer la valeur d’action transmise au script SNMP. |
Y |
|
– |
– |
Contrôle des entrées/sorties |
Récupérez la valeur OID transmise au script SNMP. |
Y |
|
Jcs |
1.0 |
Utilitaire |
Renvoyez le nom de domaine complet associé à une adresse IPv4 ou IPv6 donnée, à condition que le serveur DNS soit configuré sur l’équipement. |
Y |
|
Jcs |
1.0 |
Utilitaire |
Appelez un RPC sur un équipement local exécutant Junos OS. |
– |
|
Jcs |
1.0 |
Utilitaire |
Renvoyez un handle de connexion qui peut être utilisé pour exécuter des RPC. |
– |
|
jcs, slax |
1.0 |
Contrôle des entrées/sorties |
Générez un texte de sortie non formaté qui est immédiatement envoyé à la session CLI. |
Y |
|
Jcs |
1.0 |
Manipulation des données |
Analysez une adresse IPv4 ou IPv6 et renvoyez l’adresse IP de l’hôte, la famille de protocoles, la longueur du préfixe, l’adresse réseau et le masque réseau. |
Y |
|
jcs, slax |
1.0 |
Contrôle des entrées/sorties |
Générez du texte de sortie formaté. La plupart des formats standard |
Y |
|
jcs, slax |
1.0 |
Contrôle des entrées/sorties |
Envoyez un message de progression contenant immédiatement l’argument unique à la session CLI, à condition que l’indicateur |
Y |
|
jcs, slax |
1.0 |
Manipulation des données |
Évaluez une expression régulière par rapport à un argument de chaîne donné et renvoyez toutes les correspondances. |
– |
|
- |
- |
Utilitaire |
Programmez le logiciel de protocole (TCP/UDP) pour utiliser des instances de routage non par défaut. |
Y |
|
jcs, slax |
1.0 |
Utilitaire |
Mettre le script en veille pendant une durée spécifiée. |
– |
|
jcs, slax |
1.0 |
Manipulation des données |
Divisez une chaîne en un ensemble de sous-chaînes délimitées par un modèle d’expression régulier. |
– |
|
jcs, slax |
1.0 |
Utilitaire |
Renvoyez la valeur de la valeur donnée |
Y |
|
jcs, slax |
1.0 |
Contrôle des entrées/sorties |
Consignez les messages avec la priorité spécifiée dans le fichier journal du système. |
Y |
|
jcs, slax |
1.0 |
Contrôle des entrées/sorties |
Envoyez un message de trace, qui est envoyé au fichier de trace. |
Y |