Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configuration requise pour exécuter des scripts d’automatisation Python sur les équipements Junos

Configuration requise pour exécuter des scripts Python

Vous pouvez utiliser Python pour créer des scripts d’automatisation Junos OS de validation, d’événement, d’exploitation et SNMP. Pour empêcher l’exécution de code Python non autorisé, les équipements Junos, par défaut, ne permettent pas d’exécuter des scripts Python non signés. Pour exécuter un script Python non signé, les exigences suivantes doivent être satisfaites, en plus des exigences normales des scripts d’automatisation onbox :

  • Le propriétaire du fichier est racine ou utilisateur dans la classe de connexion Junos OS super-user .

  • Seul le propriétaire du fichier dispose de l’autorisation d’écriture pour le fichier.

  • L’exécution des scripts Python non signés est activée par la configuration de l’instruction language python au language python3 niveau de la [edit system scripts] hiérarchie.

    Note:

    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. Pour plus d’informations, consultez Understanding Python Automation Scripts for Junos Devices.

    Note:

    À partir de Junos OS Evolved Version 21.2R1, le junos-defaults groupe de configuration inclut l’instruction language python par défaut.

    Note:

    Pour permettre à un utilisateur qui n’appartient pas à la classe d’utilisateur ou de groupe du fichier d’exécuter un script d’automatisation Python non signé, les autorisations de fichier du script doivent inclure l’autorisation de lecture pour les autres utilisateurs.

Comme pour les scripts d’automatisation SLAX et XSLT, vous devez stocker les scripts d’automatisation Python dans le répertoire approprié sur l’équipement. Vous devez activer des scripts individuels en configurant le nom de fichier du script sous le niveau de hiérarchie approprié au type de script dans la configuration. Pour plus d’informations sur le stockage et l’activation des scripts d’automatisation, consultez Boutique et activer les scripts d’automatisation Junos.

Nous vous recommandons de configurer une somme de vérification pour vérifier l’intégrité des scripts Python. Pour spécifier une somme de contrôle pour un script local, configurez l’instruction checksum sous l’instruction [file filename] de la hiérarchie pour votre type de script spécifique. Pour spécifier une somme de contrôle pour un script d’exploitation distant, incluez l’argument key lorsque vous exécutez le script à l’aide de la op url commande. À partir des versions 18.2R2 et 18.3R1 de Junos OS, si vous exécutez un script Python non signé ne contenant pas de somme de contrôle configurée, les équipements Junos consignent un message CSCRIPT_SECURITY_WARNING dans le fichier journal système. Par exemple :

Configuration des privilèges d’accès pour les scripts Python

À partir de Junos OS Version 16.1R3, les scripts Python interactifs, tels que les scripts de validation et d’exploitation, s’exécutent avec les privilèges d’accès de l’utilisateur qui exécute la commande ou l’opération qui appelle le script. Les scripts Python non interactifs, tels que les scripts d’événements et SNMP, s’exécutent par défaut sous les privilèges de l’utilisateur et du groupe nobody. Pour exécuter des scripts d’événement ou SNMP à l’aide des privilèges d’accès d’un utilisateur spécifique, vous devez configurer l’instruction python-script-user username au niveau de la [edit event-options event-script file filename] hiérarchie pour les scripts d’événements ou au [edit system scripts snmp file filename] niveau hiérarchique pour les scripts SNMP, et spécifier un utilisateur configuré au niveau de la [edit system login] hiérarchie.

Par exemple :

Note:

Vous ne pouvez pas configurer les scripts SNMP et d’événements Python pour les exécuter avec les privilèges d’accès racine.

Récapitulatif des modifications apportées aux exigences par version

À partir de Junos OS Version 16.1R3, les exigences de propriété et de privilège d’accès pour certains scripts Python non signés sont modifiées. Dans Junos OS version 16.1R2 et versions antérieures, les scripts Python non signés de validation, d’événement, d’exploitation et SNMP doivent appartenir à l’utilisateur racine, et Junos OS exécute les scripts à l’aide des privilèges d’accès de l’utilisateur et du groupe nobody*nix, qui est le compte système générique et non privé. À partir de Junos OS Version 16.1R3, les scripts d’automatisation Python non signés doivent appartenir à l’utilisateur racine ou à un utilisateur de la classe de connexion de Junos OS super-user , et seul le propriétaire du fichier peut être autorisé à écrire le fichier. En outre, les scripts d’automatisation Python peuvent être exécutés avec les privilèges d’accès des utilisateurs autorisés.

Le tableau 1 présente les exigences relatives à l’exécution de scripts d’automatisation Python non signés dans les différentes versions de Junos OS compatibles Veriexec.

Tableau 1 : Exigences des scripts d’automatisation Python

Exigence/restriction

Junos OS version 16.1R2 ou antérieure

Junos OS version 16.1R3 ou version ultérieure

Propriétaire du fichier

Utilisateur racine

Utilisateur racine ou utilisateur dans la classe de connexion Junos OS super-user .

Autorisation d’écriture de fichier

Tout

Propriétaire du fichier uniquement

language python ou language python3 l’instruction doit être configurée au niveau de la [edit system scripts] hiérarchie

Note:

Python 3 est pris en charge dans Junos OS version 19.4R1 et versions ultérieures.

Oui

Oui

Le script doit être activé dans la configuration sous la hiérarchie appropriée à ce type de script.

Oui

Oui

Droits d’accès

Tous les scripts d’automatisation Python s’exécutent avec les privilèges d’accès de l’utilisateur et du groupe nobody

Les scripts Python commit et op s’exécutent avec les privilèges d’accès de l’utilisateur qui l’appelle.

Les scripts d’événements Python et SNMP s’exécutent avec les privilèges d’accès de l’utilisateur configurés dans l’instruction python-script-user . Si l’instruction python-script-user n’est pas configurée, le script s’exécute avec les privilèges d’accès de l’utilisateur et du groupe nobody.

Tableau Historique des versions
Libération
Description
22.3R1-EVO
À partir de Junos OS Evolved Version 22.3R1, Python 3 est la version Python par défaut et la seule version python prise en charge pour l’exécution de scripts Python.
21.2R1-EVO
À partir de Junos OS Evolved Version 21.2R1, l’instruction language python est configurée par défaut dans le groupe de junos-defaults configuration.
16.1R3
À partir de Junos OS Version 16.1R3, les exigences de propriété et de privilège d’accès pour certains scripts Python non signés sont modifiées.